ASP.NET 2.0中的窗体身份验证
。 • 由于服务器已经验证了身份验证 Cookie,因此它允许访问并返回 Default.aspx 页。 FormsAuthenticationModule ASP.NET 2.0 在计算机级 Web.config 文件中定义了一组 HTTP 模块,包括大量身份验证模块,如下所示:
每个请求只能使用一个身份验证模块。所使用的身份验证模块取决于 authentication 元素(通常位于应用程序的虚拟目录中的 Web.config 文件中)指定了哪种身份验证模式。 当 Web.config 文件中包含以下元素时,激活 FormsAuthenticationModule 类。
FormsAuthenticationModule 类构造一个 GenericPrincipal 对象并将其存储在 HTTP 上下文中。GenericPrincipal 对象保存对一个 FormsIdentity 实例的引用,该实例代表当前经过身份验证的用户。应该允许窗体身份验证为您管理这些任务。如果应用程序有特定要求(例如,将 User 属性设置为一个实现 IPrincipal 接口的自定义类),则该应用程序应该处理 PostAuthenticate 事件。FormsAuthenticationModule 验证了窗体身份验证 Cookie 并创建了 GenericPrincipal 和 FormsIdentity 对象之后,会发生 PostAuthenticate 事件。在该代码中,可以构造一个包装 FormsIdentity 对象的自定义 IPrincipal 对象,然后将它存储在 HttpContext. User 属性中。 注 如果执行了这一操作,还需要设置 Thread.CurrentPrincipal 属性上的 IPrincipal 引用,以确保 HttpContext 对象和该线程指向相同的身份验证信息。 窗体身份验证 Cookie 调用 FormsAuthentication.SetAuthCookie 或FormsAuthentication.RedirectFromLoginPage 方法时,FormsAuthentication 类自动创建身份验证 Cookie。 典型的窗体身份验证 Cookie 中包括以下属性: • Name。该属性指定 Cookie 的名称。 在典型的窗体身份验证 Cookie 中,该值包含一个经过加密和签名的 FormsAuthenticationTicket 对象的字符串表示形式。该 Cookie 包含以下属性: • HasKeys。该属性指出 Cookie 是否有子项。 注 不支持 HttpOnly Cookie 属性的 Web 浏览器要么忽略该 Cookie,要么忽略该属性,这意味着会话仍然容易受到跨站点脚本的攻击。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |