【问题标题】:app.UseCookieAuthentication does not seem to be working for cookiename or expiretimespanapp.UseCookieAuthentication 似乎不适用于 cookiename 或 expiretimespan
【发布时间】:2016-01-11 18:35:51
【问题描述】:

在 asp.net 5 + (asp.net identity 3.0) 中,我正在尝试重命名 cookie 并查看是否可以将注销值设置为默认值。
公共无效配置(IApplicationBuilder 应用程序,IHostingEnvironment env,ILoggerFactory loggerFactory) { app.UseIdentity();

            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {

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

            });
}

cookie 名称没有被重命名为 MyCookie 并且 ExpireTimeSpan = TimeSpan.FromMinutes(1.0) 不是“在 1 分钟后注销我)或设置 . 我确实被重定向到

【问题讨论】:

    标签: asp.net-identity


    【解决方案1】:

    尝试在您的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提供者设置

    【讨论】:

    • 我在任何地方都没有看到提供者选项。
    • 它是CookieAuthenticationOptions 类中的属性。我更新了我的答案
    【解决方案2】:

    事实证明你必须使用

     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
                {
    

    ...等

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

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 2023-04-06
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多