我的网站存在问题,用户会话在15分钟不活动后正在注销。
发生这种情况时,如果用户点击任何链接,则会将其带回登录页面。
我想将用户会话注销的持续时间增加到2小时。
以下是进行初始身份验证的方法:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
var mcookie = new AbcCookie();
if (ModelState.IsValid)
{
using (var marvRepo = new AbcRepositry())
{
var passwordHash = Abc.Web.Portal.Helpers.Security.CreatePasswordHash(model.Password);
var userAccount = marvRepo.GetAbcUser(model.UserName,model.PartnerAccessCode);
if(userAccount != null && userAccount.Password == passwordHash && userAccount.PartnerAccessCode == model.PartnerAccessCode.ToUpper())
{
mcookie.GetMMformsauthentication(userAccount, model.RememberMe);
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError("", "The user name,access code or password provided is incorrect.");
}
}
}
这是表单身份验证。
public void GetMMformsauthentication(UserAccount useraccount,bool createPersistentCookie) { const string UnknownUsername =“anonymous”;
// Composing UserData to be stored in the auth cookie
var userCookieData = new AbcUserCookieData()
{
UserId = useraccount.UserID,
Password = useraccount.Password,
PartnerAccessCode = useraccount.PartnerAccessCode
};
var ticket = new FormsAuthenticationTicket(1, string.IsNullOrEmpty(useraccount.UserID) ? UnknownUsername : useraccount.UserID, DateTime.Now,
DateTime.Now.AddDays(100), createPersistentCookie, userCookieData.ToString(), FormsAuthentication.FormsCookiePath);
var hashedCookie = FormsAuthentication.Encrypt(ticket);
HttpContext.Current.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashedCookie); // Hashed ticket
authCookie.HttpOnly = true;
authCookie.Expires = ticket.Expiration;
authCookie.Path = ticket.CookiePath;
authCookie.Secure = false;
HttpContext.Current.Response.SetCookie(authCookie);
//System.Web.HttpContext.Current.Response.Cookies.Add(authCookie);
}
}
我试图增加身份验证票证的持续时间,但会话在15分钟后超时,无论使用何种值。
我在web.config中添加了以下内容,以确定是否可以解决问题。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
我假设“超时”值以分钟为单位(我故意将值设置为高数字)
我已尝试过所有内容,但我的会话在15分钟后仍会自动注销。
有没有人知道可能导致登录会话在15分钟后结束的原因?