【问题标题】:When HttpWebRequest.Credentials should be used何时应使用 HttpWebRequest.Credentials
【发布时间】:2012-01-14 01:44:57
【问题描述】:

我尝试使用 HttpWebRequest 实例对需要身份验证的 Web url 执行 POST(具有内置成员资格系统的 ASP.NET MV3 标准 [Authorize] 装饰操作方法),但提供登录和在HttpWebRequest 中作为NetworkCredentials 的密码没有成功。

我最终使用了一个全局 CookieContainer 和两个 HttpWebRequests

  1. 将请求的CookieContainer 设置为globalCookieContainer
  2. 将用户名和密码发布到登录 URL。 (在该步骤之后,容器仍然报告 Cookie 计数为 0)。
  3. 创建另一个HttpWebRequest 实例并将globalCookieContainer 设置为请求的CoockieContainer
  4. POST 到需要身份验证的最终 url。出于某种原因,这一次第二个请求对象将 cookie 作为请求的一部分提供并通过。

cookie 管理的整个“魔力”在任何地方都没有很好地描述(我真的试图四处搜索)。

我们已经涵盖了这种情况。但是在什么情况下应该使用HttpWebRequest.Credentials

【问题讨论】:

    标签: .net cookies httpwebrequest cookiecontainer


    【解决方案1】:

    HttpWebRequest.Credentials 旨在通过AuthenticationSchemes 枚举中的一种方案执行身份验证时使用。其中包括 Basic 和 Digest HTTP 身份验证、NTLM 和 Kerberos。

    也就是说,您可以通过在客户端从 NetworkCredential 派生并在服务器端实现 IAuthenticationModule 来制作自己的自定义身份验证方案。

    【讨论】:

    • 乔恩,非常感谢。那么 authentication mode="forms" 不会将 ASP.NET 网站设置为基本身份验证吗? “基本”和“形式”这两个不是一回事吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2016-06-13
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多