2017-10-12 5 views
0

ための変更有効期限は、私は電子メールの検証トークンのトークンの寿命スパンを確保し、次のコードは、14日後に有効期限が切れています: -のAspアイデンティティ2 - モバイルトークン

if (Startup.DataProtectionProvider != null) 
      { 
       IDataProtector dataProtector = Startup.DataProtectionProvider.Create("ASP.NET Identity"); 

       this.UserTokenProvider = new DataProtectorTokenProvider<IdentityUser, Guid>(dataProtector) 
       { 
        TokenLifespan = TimeSpan.FromDays(14) 
       }; 
      } 

私のアプリの別の領域では、I ASP.Identity ApplicationUserManagerのGenerateChangePhoneNumberTokenAsync(userId、phoneNumber)メソッドを呼び出すことによって、携帯電話番号トークンを使用しています。

問題は、15分後にモバイルトークンが期限切れになることです。

モバイルトークンの有効期間を変更するにはどうすればよいですか?

答えて

1

あなたはそうするために

Microsoft.AspNet.Identity.UserManager.GenerateChangePhoneNumberTokenAsync 

をオーバーライドする必要がある最初のUserManagerを拡張する方法を見てherehere を持ってください。

GenerateChangePhoneNumberTokenAsync では、タイムステップパラメータでGenerateCode に呼び出す持つカスタムRfc6238AuthenticationServiceを使用する必要が

GenerateChangePhoneNumberTokenAsyncこの

public class ApplicationUserManager : UserManager<YourIdentityUser, int> 
{ 
    public ApplicationUserManager(IUserSecurityStampStore<YourIdentityUser, Guid> store) 
     : base(store) 
    { 
    } 

    // *** some other code 

    public override async Task<string> GenerateChangePhoneNumberTokenAsync(Guid userId, string phoneNumber) 
    { 
     var user = await FindByIdAsync(userId); 
     var code = CustomRfc6238AuthenticationService.GenerateCode(user.SecurityStamp, phoneNumber, "optional modifier", TimeSpan.FromDays(14)); 
     return code; 
    } 
} 

とサンプル実装のようになります。カスタムのRfc6238Authenticationサービスが見つかりましたhere

+0

ありがとうございました! – Derek

関連する問題