.net MVC Identity在会话之间保持不变

时间:2014-02-28 18:37:42

标签: asp.net-mvc-5 identity

设置我的第一个.net MVC5项目和登录工作,但我注意到,如果我不手动注销,身份仍然存在。我认为isPersistent标志设置为false会阻止这种情况,但事实并非如此,我找不到任何文档告诉我如何解决这个问题。

这是我登录的异步方法

private async Task SignInAsync(SdIdentityUser user, bool isPersistent)
{
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
    var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
    Session["user"] = user;
    AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}

这是对方法的调用

await SignInAsync(user, isPersistent: false);

这是我的Startup.Auth配置

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
        LoginPath = new PathString("/Account/Login")
    });
    // Use a cookie to temporarily store information about a user logging in with a third party login provider
    app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

1 个答案:

答案 0 :(得分:1)

如果可能,我会删除这个问题。答案结果是,当正确设置为false时,isPersistent正常工作。我的代码有一个缺陷,导致标志设置为true。