ASP.NET Web角色未保留ASP.NET 4.5身份验证cookie

时间:2015-03-17 07:48:27

标签: c# asp.net forms authentication cookies

我的Azure WebRole上的表单身份验证存在问题。它不存储登录的身份验证cookie。用户启动新会话后,必须再次登录。 首先我试过了:

FormsAuthentication.SetAuthCookie(userIdent, rememberMe);

现在手动完成:

var ticket = new FormsAuthenticationTicket(1, userIdent, DateTime.Now, DateTime.Now.AddMonths(6),rememberMe,string.Empty, FormsAuthentication.FormsCookiePath);
var encryptedTicket = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket)
{
    Path = FormsAuthentication.FormsCookiePath,
    HttpOnly = true
};
if (rememberMe)
{
    cookie.Expires = ticket.Expiration; 
}
Response.Cookies.Add(cookie);

这是web.config中的一个片段:

<machineKey decryption="Auto" decryptionKey="<My Decryption Key>" validation="SHA1" validationKey="<MyValidationKey>" />

<authentication mode="Forms">
  <forms loginUrl="~/Account/Login" slidingExpiration="true" timeout="2880" cookieless="UseCookies" />
</authentication>

但问题仍然存在。有时它会记得吗?因为它在Azure WebRole中运行,所以我们将MachineKey添加到web.config。

问题可能与Azure Web角色无关,因为我们注意到在本地运行的相同行为。例如。本地主机:7778

0 个答案:

没有答案