多台服务器做负载,可以登录成功。 成功之后再多次访问其他页面,会出现 登录状态一会在线,一会不在线。
网上查说是:默认情况下,ASP.NET 生成随机密钥并将其存储在本地安全机构 (LSA) 中, 因此,当需要在多台机器之间使用Forms身份认证时,就不能再使用随机生成密钥的方式, 需要我们手工指定,保证每台机器的密钥是一致的。
<machineKey
decryption="Auto" [Auto | DES | 3DES | AES] decryptionKey="AutoGenerate,IsolateApps" [String] />
于是我在web.config里加了,
<machineKey decryption="DES" decryptionKey="E85C9E85C9E85C99" validation="MD5" validationKey="E85C9E85C9E85C99E85C9E85C9E85C99E85C9999" />
但是没有效果。。。请教这个问题如何解决如何配置。。
下面是我的登录代码:
FormsAuthentication.SetAuthCookie(userName, isRememberMe);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddHours(24), false, userData, FormsAuthentication.FormsCookiePath);
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie newCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
newCookie.Path = FormsAuthentication.FormsCookiePath;
if (isRememberMe)
{
newCookie.Expires = DateTime.Now.AddHours(24);
}
System.Web.HttpContext.Current.Response.Cookies.Add(newCookie);
整个单点登录吧