【问题标题】:F# OData Type Provider Unauthorized (401)F# OData 类型提供程序未经授权 (401)
【发布时间】:2016-01-29 03:52:41
【问题描述】:

我正在尝试将 OData 类型提供程序与受表单身份验证保护的 Sharepoint 站点一起使用。与浏览器连接会呈现浏览器嵌入的“身份验证表单”进行身份验证。

使用类型提供程序我无法连接到它,也找不到提供凭据的方法:

我看到您可以在此步骤之后提供凭据,如下所示:

let db = service.GetDataContext() in
    db.Credentials <-
        (NetworkCredential("user_name", "password", "domain") :> ICredentials)

但我什至无法达到这一点,无论是在设计时还是在运行时,代码都会抛出 401 错误,如屏幕截图所示。

那么,我应该如何连接到表单身份验证背后的 OData 服务?

谢谢。

【问题讨论】:

    标签: .net f# odata type-providers


    【解决方案1】:

    这里发生了几件事。首先,401 未经授权的结果是登录页面发送到您的浏览器的结果。因此,即使您的脚本可以加载该登录页面,它仍会将其视为 401,您必须以某种方式处理它。

    但真正的问题是浏览器的 cookie 与 F# 环境(或任何其他程序,真的)完全分开。您需要随 HTTP 请求一起发送授权令牌,以便服务器知道是您。这意味着您可能必须提供自己的登录界面,该界面知道如何使用该表单、保存 cookie 并将它们与您的请求一起传递。

    我不确定如何使用类型提供程序来完成此操作,但其他问题可能会有所帮助:Send Authorization cookie when calling OData service

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 2011-03-06
      • 2018-05-19
      • 2020-06-11
      • 2017-02-22
      相关资源
      最近更新 更多