2016-05-25 8 views
1

Ich muss ein E-Mail-Token für die Authentifizierung erstellen. Die Verwendung der Standardfunktionalität ist keine Option, da der E-Mail-Token relativ schnell abläuft.Kürzere E-Mail-Token - Asp-Identität

Mit folgendem Code konnte ich die Token-Lebensdauer verlängern, aber dies erzeugt ein sehr langes und komplexes Token. Ist es möglich, ein sechsstelliges Token mit einer verlängerten Lebensdauer zu generieren?

var dataProtector = dataProtectionProvider.DataProtectionProvider.Create("My Asp.Net Identity"); 
userManager.UserTokenProvider = new DataProtectorTokenProvider<ApplicationUser, string>(dataProtector) 
{ 
    TokenLifespan = TimeSpan.FromHours(24) 
}; 

Quelle: Email Token Expiring After 15 mins - Asp Identity 2.0 API

Mit freundlichen Grüßen,

Brecht

Antwort

1

gelöst! Implementieren Sie einfach IUserTokenProvider und Sie können Ihre eigene Logik schreiben!

public class CustomUserTokenProvider : IUserTokenProvider<ApplicationUser, string> 
{ 
    public Task<string> GenerateAsync(string purpose, UserManager<ApplicationUser, string> manager, 
     ApplicationUser user) 
    { 
     return 
      //logic to generate code 
    } 

    public Task<bool> IsValidProviderForUserAsync(UserManager<ApplicationUser, string> manager, ApplicationUser user) 
    { 
     throw new NotImplementedException(); 
    } 

    public Task NotifyAsync(string token, UserManager<ApplicationUser, string> manager, ApplicationUser user) 
    { 
     throw new NotImplementedException(); 
    } 

    public Task<bool> ValidateAsync(string purpose, string token, UserManager<ApplicationUser, string> manager, 
     ApplicationUser user) 
    { 
     //logic to validate code 
    } 
} 
Verwandte Themen