我已经实现了Login按钮,如下所示:
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(u.UserID.ToString(), true, 2880);
string encTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
cookie.Expires = DateTime.Now.AddMinutes(2880);
Response.Cookies.Add(cookie);
Response.Redirect("/index.aspx");
这是我的网络配置:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Index.aspx" slidingExpiration="true" timeout="2880" />
</authentication>
我的问题是:当我将我的Web应用程序部署到主机时,一旦我登录,我就会在用户目录中的几个页面上流口水,几乎在30秒后立即 - 1分钟后我退出并重定向到登录页面,以便我可以再次重新登录。为什么会这样?我已经在我的本地机器上测试过,它运行得很好吗?!?!
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您是否在网络服务器场托管?
如果是这样,您将登录到一台服务器,当您被重定向到其他服务器时,它无法解密您的身份验证票证。每个Web服务器上的所有机器密钥必须相同。见How To: Configure MachineKey in ASP.NET 2.0