ASP.NET Forms 身份验证控制流

浏览器和 HTTP 操作

服务器答复

从服务器请求受保护的资源。HTTP 操作为:

GET /default.aspx

如果不存在身份验证 Cookie,则将请求重定向到登录页以收集凭据。使用 RETURNURL 作为关键字,将有关起始页的信息放在查询字符串中。服务器 HTTP 答复为:

302 Found Location: http://samples.microsoft.com/logon.aspx?RETURNURL=/default.aspx

重定向到登录页。HTTP 操作为:

GET /logon.aspx?RETURNURL=/default.aspx

返回登录页。为安全起见,建议对登录页使用安全套接字层 (SSL),以阻止用户凭据以明文形式发送。服务器 HTTP 答复为:

200 OK

用户在登录页输入凭据后,提交该页。HTTP 操作为:

POST /logon.aspx?RETURNURL=/default.aspx

验证用户凭据,如果凭据通过身份验证,则将浏览器重定向到在 QueryString 中作为 RETURNURL 变量指定的原始 URL。默认情况下,身份验证票证以 Cookie 的形式发出。

注意

您可以使用 CookieMode 属性,指定将身份验证票证包含在 URL 中,而不是包含在 Cookie 中。

服务器 HTTP 答复为:

302 Found Location: /default.aspx

遵循重定向操作并再次请求原始资源。HTTP 操作为:

GET /default.aspx

如果用户通过身份验证,则允许访问并授予身份验证 Cookie,该 Cookie 中包含身份验证票证。同一浏览器会话的以后的请求将在模块检查该 Cookie 时进行身份验证。可以创建可用于以后的会话的持久性 Cookie,但该 Cookie 的使用期截止到到期日期为止。服务器 HTTP 答复为:

200 OK Set-Cookie: ASPXTICKET=ABCDEFG12345;Path=/

注意,Cookie 路径设置为 /。由于 Cookie 名称区分大小写,因此这有助于防止站点中的 URL 的大小写不一致。例如,如果路径设置为 /SavingsPlan,而链接包含 /savingsplan,由于浏览器不会发送 Cookie,用户将被迫重新进行身份验证。

posted on 2007-03-18 23:37  hzwang  阅读(265)  评论(0编辑  收藏  举报

导航