Oauth regenerateIdentityCallback无效

时间:2016-02-02 05:58:41

标签: oauth owin

我在我的应用中使用oauth和owin进行身份验证。 我想在一个区间中用新的声明重新生成标识,但从未调用分配给它的函数处理程序的方法 这是我的代码:

  public static void ConfigureCookieAuthentication(IAppBuilder app)
    {


        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie,
            ExpireTimeSpan = TimeSpan.FromMinutes(30),
            Provider = new CookieAuthenticationProvider
            {

                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, PouyaKianParham.ContentProviderSystem.BusinessObjectLayer.Account.Models.ApplicationUser, int>(
                        validateInterval: TimeSpan.FromSeconds(15),

                        regenerateIdentityCallback: (a, b) => GenerateUserIdentityAsync(null,null),
                        getUserIdCallback: (id) => (id.GetUserId<int>()))

            },

            LoginPath = new PathString("/Account/Login")

        });

    } 

这是我的回调方法(也在OAuthconfig.cs中):

       public static async Task<ClaimsIdentity> GenerateUserIdentityAsync(ApplicationUserManager ApplicationUserManager, UserManager manager)
    {
        //regenrating identity with new claims
        return identitywithClaim;
    }

提前致谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,但以下情况对我有用。

我使用UserStore,UserManager等的自定义实现。事实证明,UserStore必须实现IUserSecurityStampStore<TUser, in TKey>

实现后,regenerateIdentityCallback委托在需要时被调用,一切都运行得很好。