C# Asp.Net身份验证(自动注销)

C# Asp.Net身份验证(自动注销),c#,asp.net,asp.net-mvc-3,C#,Asp.net,Asp.net Mvc 3,在我的应用程序中,我使用了Asp.Net表单身份验证 FormsAuthenticationTicket ticket = new FormsAuthenticationTicket( 1, adminResult.UserName, DateTime.Now, DateTime.Now.AddDays(2),

在我的应用程序中,我使用了Asp.Net表单身份验证

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                    1,
                    adminResult.UserName,
                    DateTime.Now,
                    DateTime.Now.AddDays(2),
                    true,
                    "Administrator",
                    FormsAuthentication.FormsCookiePath
                    );
                string hash = FormsAuthentication.Encrypt(ticket);
                HttpCookie coockie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
                if (ticket.IsPersistent)
                {
                    coockie.Expires = ticket.Expiration;
                }
                Response.Cookies.Add(coockie);
                if (Url.IsLocalUrl(returnUrl))
                {
                    return Redirect(returnUrl);
                }
                else
                {
                    return RedirectToAction("Dashboard", "Cockpit");
                }
但它会在10到15秒内自动注销

解决办法是什么


感谢

可能是因为垃圾收集器清除并重新分配了应用程序的机器密钥。并将其放置在web.config中

<system.web>
    <machineKey validationKey="###YOUR KEY HERE ###"
                decryptionKey="## decrypt key here ##" 
                validation="SHA1" decryption="AES" />

MachineKey用于ViewState加密和验证,
FormAuthentication
使用此密钥对验证票证进行签名,如果您未在
web.config
中指定,则会自动分配,但如果您自己指定,则收集器不会清除它。。。
这是一篇信息丰富的文章,它可能会帮助您更好地理解MachineKey的重要性/工作原理

请与您分享web.config详细信息谢谢,先生,它有效,机器密钥是否会愚弄垃圾收集器。机器钥匙是如何工作的,请回复。