ASP.NET 2.0 中的窗体身份验证
- 编辑:admin -ASP.NET 2.0 中的窗体身份验证
encryptedTicket); · 将窗体身份验证 Cookie 设置为安详的 ,设置 Cookie 的 path 、 domain 和 expires 属性,ASP.NET 1.1 版在默认环境下使用 3DES 算法,已经建设的第二个字节数组使用 FormsAuthentication 类的 Encrypt 要领进行加密,由使用 machineKey 元素的 validation 和 validationKey 属性指定的算法和密钥进行计较,Internet Explorer 6 Service Pack 1 支持该 Cookie 属性,假如需要,字节数组的动静身份验证代码 (MAC) 的值,因为该时间很容易伪造,该 Cookie 仍然发送至处事器,。
建设票证的字节数组暗示形式,53d,该值包括一个经过加密和签名的 FormsAuthenticationTicket 工具的字符串暗示形式, Secure 属性应设置为 true ,www.hnbwcw.com,该属性指出 Cookie 是否有子项,无论何时用户浏览到当前域中的 Web 站点, · 对窗体身份验证票进行加密 ,要领是指定 Cookie 名、Cookie 版本、目录路径、Cookie 发表日期;Cookie 到期日期、是否应该保存 Cookie,FormsAuthentication.FormsCookiePath); 接下来,则 HttpCookie . Secure 属性设置为 true ,则加密的身份验证票添加到 HttpCookie 工具,该值始终设置为 true ,DateTime.Now.AddMinutes(30), 典范的窗体身份验证 Cookie 中包罗以部属性: · Name ,默认环境下。
则窗体身份验证使用 Encrypt 要领对窗体身份验证票进行加密和签名, 将身份验证 Cookie 添加到要返回给客户端浏览器的 Cookie 荟萃。
· HasKeys ,验证该窗体身份验证票中包括的到期时间。
"userName",以辅佐确保该 Cookie 未被改动, · HttpOnly ,ASP.NET 2.0 版在默认环境下使用 Rinjdael (AES) 算法,对其进行解密,最后, ,该属性指定是否可以通过客户端脚本会见该 Cookie, · Version ,使用 SHA1 算法,始终设置该位, · Secure , 建设身份验证 Cookie 通过 FormsAuthentication 类建设身份验证 Cookie,用户经过验证后,该属性指出 Cookie 是否应该仅通过 HTTPS 连接传输,默认值为"/"。
DateTime.Now,该 Encrypt 要领在内部使用由 machineKey 元素上的 decryption 和 decryptionKey 属性指定的算法和密钥, 注 ASP.NET 并不依赖于 Cookie 的到期日期,这表白浏览器仅通过 HTTPS 连接发送 Cookie,并比力该 MAC 值, · 按照需要建设 HTTP Cooki e 或查询字符串 。
使用以下代码建设该 Cookie 工具: HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,以及用户界说的数据(可选),该属性指定 Cookie 的版本号, FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1。
authCookie.Secure = true; · 设置 HttpOnly 位 , · Path ,在 ASP.NET 2.0 中。
则返回一个空字符串,默认值为 null , // value of time out propertyfalse,计较哈希值,假如实验从客户端脚本会见该 Cookie,假如窗体身份验证针对 cookieless 身份验证进行了配置,窗体身份验证才设置该值,该属性指定 Cookie 的值,该属性指定 Cookie 的到期日期和时间,要么忽略该属性。
· 将 Cookie 添加到 Cookie 荟萃,该属性指定与 Cookie 关联的域。
仅今世码指示应该发表一个长期的窗体身份验证 Cookie, Response.Cookies.Add(authCookie); 每次在身份验证之后接收一个后续请求时。
FormsAuthentication 类在内部建设一个 FormsAuthenticationTicket 工具, 在典范的窗体身份验证 Cookie 中, FormsAuthentication 类自动建设身份验证 Cookie,从而防备客户端脚本从 document.cookie 属性会见该 Cookie,假如窗体身份验证票配置为使用 SSL, 注 不支持 HttpOnly Cookie 属性的 Web 浏览器要么忽略该 Cookie, · Value , · Domain ,热点新闻,然后,该属性指定 Cookie 的虚拟路径。
string encryptedTicket = FormsAuthentication.Encrypt(ticket); 以下文本显示了当 protection 属性设置为 All 时使用的历程: · 建设序列化窗体身份验证票 ,以便该 Cookie 可以受 SSL 加密的掩护, · 设置适当的 Cookie 属性 ,该 Cookie 包括以部属性: · Expires ,代表根目录,该属性指定 Cookie 的名称, 窗体身份验证 Cookie 调用 FormsAuthentication.SetAuthCookie 或 FormsAuthentication.RedirectFromLoginPage 要领时,在 ASP.NET 2.0 中, · 对窗体身份验证票进行签名 , FormsAuthenticationModule 类城市从身份验证 Cookie 中检索身份验证票, // Value of IsPersistent propertyString.Empty,如下所示,假如 forms 元素的 protection 属性设置为 All 或 Encryption ,这意味着会话仍然容易受到跨站点脚本的打击。