2017-10-12 5 views
0

Ich habe den folgenden Code, der die Token Lebensdauer Spanne für E-Mail-Überprüfung Token verfallen nach 14 Tagen gewährleistet: -Asp Identität 2 - Änderung Ablaufzeit für Mobile Token

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

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

In einem anderen Bereich meiner app, ich Verwende Handy-Token, indem ich die GenerateChangePhoneNumberTokenAsync (userId, phoneNumber) -Methode des ASP.Identity ApplicationUserManagers aufruft.

Das Problem ist, dass die mobilen Token nach 15 Minuten ablaufen.

Wie ändere ich die Lebensdauer der mobilen Token?

Antwort

1

Sie müssen außer Kraft setzen

Microsoft.AspNet.Identity.UserManager.GenerateChangePhoneNumberTokenAsync 

so zu tun haben, bitte einen Blick here und here wie die Usermanager zuerst zu verlängern.

In GenerateChangePhoneNumberTokenAsync Sie benötigen eine benutzerdefinierte Rfc6238AuthenticationService zu verwenden, die Gene mit Zeitschritt Parameter

Die GenerateChangePhoneNumberTokenAsync wird wie dieser Implementierung

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; 
    } 
} 

und die Probe schauen nennen hat von benutzerdefinierten Rfc6238Authentication Service kann gefunden werden here

+0

Danke dafür! – Derek

Verwandte Themen