app.UseCookieAuthentication似乎不适用于cookiename或expiretimespan

时间:2016-01-11 18:35:52

标签: asp.net-identity

在asp.net 5 +(asp.net identity 3.0)中我试图重命名cookie,看看我是否可以设置默认的注销值。
public void Configure(IApplicationBuilder app,IHostingEnvironment env,ILoggerFactory loggerFactory)     {       app.UseIdentity();

            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {

                CookieName = "MyCookie",
                ExpireTimeSpan = TimeSpan.FromMinutes(1.0),

            });
}

enter image description here

Cookie名称未重命名为MyCookie,ExpireTimeSpan = TimeSpan.FromMinutes(1.0)不是" 1分钟后退出我或者设置。我确实被重定向到

2 个答案:

答案 0 :(得分:0)

尝试在CookieAuthenticationOptions

中添加这些行
app.UseCookieAuthentication(new CookieAuthenticationOptions 
{
    CookieName = "MyCookie", 
    ExpireTimeSpan = TimeSpan.FromMinutes(1.0), 
    Provider = new CookieAuthenticationProvider 
    {
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
            TimeSpan.FromMinutes(1.0),
            (manager, user) => user.GenerateUserIdentityAsync(manager, user))
    }
});

正如我在Identity 2.0中看到的那样,配置与3.0相同,这些都是一个有效的例子。您需要提供Identity提供商设置

答案 1 :(得分:0)

事实证明你必须使用

 public void ConfigureServices(IServiceCollection services)
        {

  services.AddIdentity<ApplicationUser, ApplicationRole>(
                   options => {

                       options.Cookies.ApplicationCookieAuthenticationScheme = "MyCookie";
                       options.Cookies.ApplicationCookie.AuthenticationScheme = IdentityCookieOptions.ApplicationCookieAuthenticationType = "MyCookie";
                       options.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromSeconds(30.0);
                       options.Cookies.ApplicationCookie.CookieName = "MyCookie";


                   })

}

我使用的是IApplicationBuilder应用

  app.UseIdentity().UseCookieAuthentication(
            new CookieAuthenticationOptions
            {

... ect

所以基本上使用IServiceCollection AddIdentity解决了我的问题。