关于FormsAuthenticationTicket
和实际的cookie容器,我仍然感到有点困惑。
DateExpiration
中的FormsAuthenticationTicket()
是指什么?那饼干死了吗?用户可以在没有任何活动操作(即超时)的情况下保持登录多长时间?
<forms loginUrl="~/Account/LogOn"
protection="All"
timeout="20160"
name="test"
path="/"
requireSSL="false"
slidingExpiration="false"
defaultUrl="default.aspx"
cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
这是我的网络配置中的内容。现在,将这些中的任何一个自动设置为cookie吗?例如,我可以从name
字段中获取制作Cookie时需要抓取的内容吗?
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
但是设置protection
(无论是什么),timeout
,slidingExpiration
,enableCrossAppRedirects
,cookieless
等等呢?我没有看到设置这些的属性。它们会自动从webconfig中获取还是什么?
DateExpiration
中设置的FormsAuthTicket
与您为Cookie设置的authCookie.Expires
之间有什么区别?
由于
答案 0 :(得分:3)
它控制用户无需重新验证即可访问网站的时间。
<强>更新强>
This MSDN article有关于此主题的信息。如果在web.config中将保护设置为All,则使用machineKey元素上指定的算法对故障单进行加密。根据{{3}},默认值为SHA1和AES。
如果您想查看未加密的票证,可以在web.config中设置protect =“None”,但通常不希望在生产应用中执行此操作。
您还可以使用Lutz Reflector等工具检查FormsAuthentication和FormsAuthenticationTicket类的来源,以了解有关如何生成故障单的更多信息。