MVC身份||禁用所有cookie并“记住我”选项?

时间:2014-09-01 09:47:06

标签: asp.net asp.net-mvc asp.net-identity

我使用MVC 4和身份2.0,我在我的网站(开箱即用功能)"记住我"我想禁用此选项,并在我的网站中使用以下两个选项之一:

1.用户每次使用我的网站时都需要登录(输入用户名和密码)。

2.用户每次都需要登录,但该网站将记住他30分钟并且不强迫他在该时间段内登录(在我们的情况下为30分钟)。

我如何完成这三件事?

禁用我只是注释登录页面中的复选框我认为它会起作用:)

修改

当我设置它时:

   app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Logon/LogOn"),
            ExpireTimeSpan = TimeSpan.FromMinutes(30),
        });

我是否需要从那里评论/删除此代码:

app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
                LoginPath = new PathString("/Account/Login"),
                Provider = new CookieAuthenticationProvider
                {
                    OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                        validateInterval: TimeSpan.FromMinutes(30),
                        regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
                }
            });

            app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

1 个答案:

答案 0 :(得分:3)

禁用&#34;记住我&#34;将false作为

中的最后一个参数传递
await userManager.SignInAsync(AuthenticationManager, user, false);

并从视图中删除此复选框。

要使Cookie在30分钟后过期,请在Auth.Config设置ExpireTimeSpan至30分钟内

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
    LoginPath = new PathString("/Logon/LogOn"),
    ExpireTimeSpan = TimeSpan.FromMinutes(30),
});