使用ASP.NET 2.0和表单身份验证。 只是一个试验,我配置了角色在web.config中使用网站是这样的:.ASPXROLES成员资格角色Cookie到期
<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPXROLES" cookieTimeout="2"></roleManager>
我想看看当缓存的角色饼干过期会发生什么。 使用Fiddler,过了2分钟后,我可以看到角色cookie的原始值已更改。
我期待在到期时ASP.NET会重新读取数据库中的角色信息,并使用相同的值重新填充cookie。所以我的问题是,为什么cookie的原始价值会在到期后发生变化?这个cookie值不是人类可读的(base64编码和/或加密的?),所以我不能分辨它中的信息是否相同,尽管应用程序似乎仍然工作正常。
编辑:
它看起来每个角色进行加密,并在Cookie中缓存的时间一样,它得到一个不同的原始值。
例如如果您运行以下代码:
RolePrincipal rp = (RolePrincipal) User;
string str = rp.ToEncryptedTicket();
Label1.Text = str;
您每次获得不同的值。 所以这种行为看起来很正常。
是的,在某种程度上,这将对加密有意义。这可能取决于您在web.config中使用加密密钥时所做的操作。我将编辑我的问题并添加一些内容。 – jcolebrand 2010-11-16 00:39:24