0

我正在使用 asp.net mvc4。在我的登录页面中,我保留了“记住我”选项。但看起来它不起作用。

我像这样保存了我的 authcookie:

var authTicket = new FormsAuthenticationTicket(1, //version
                            userName, // user name
                            DateTime.Now,             //creation
                            DateTime.Now.AddMinutes(60), //Expiration
                            persistanceFlag, //Persistent
                            usrData); //Saving user data

var encTicket = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Response.Cookies.Add(cookie);

我正在使用表单身份验证。我已经检查了实现“AuthorizeAttribute”接口的 CustomAuthorizeAttribute 类中的身份验证。

public class CustomAuthorize : AuthorizeAttribute
{
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        base.OnAuthorization(filterContext);

        if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
        {
            // auth failed, redirect to login page

            filterContext.Result = new RedirectResult("~/Security/UserAccount/SignIn");
        }
    }
}

但这就像我的流程没有处理“记住我”选项。当我登录时选择“记住我”选项,然后关闭并重新打开浏览器,它再次要求登录。

4

1 回答 1

0

如果persistanceFlag 的值是多少,这应该是真的。

这是在改变吗?

于 2013-11-21T05:29:23.410 回答