1

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

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

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

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

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

4

1 回答 1

1

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

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

于 2012-01-14T01:51:14.527 回答