2017-05-25 34 views
0

已嘗試設置用戶註冊後發送的電子郵件地址鏈接的到期時間,鏈接令牌應在10分鐘後過期。已經使用的代碼,但即使經過10分鐘的用戶仍然可以訪問該鏈接,這裏是我的代碼,如何在10分鐘後在Asp.net Identity中設置電子郵件地址鏈接令牌過期

var userManager = GetUserManager(); 
userManager.UserTokenProvider = new DataProtectorTokenProvider<User,int(dataProtectionProvider.Create("ConfirmEmail")) 
{ 
    TokenLifespan = TimeSpan.FromMinutes(10) 
}; 
+0

當用戶點擊鏈接時,令牌驗證是否發生?你正在手動做還是把它留給身份框架? –

+0

當用戶點擊鏈接已經測試了' var result = userManager.VerifyUserTokenAsync(Id,purpose,token);'但即使擁有有效的令牌也一直變得錯誤。 – Surendar

+0

[這裏]有一個很好的解決方案(https://stackoverflow.com/questions/14643735/how-to-generate-a-unique-token-which-expires-after-24-hours) – 4nis

回答

0

想到的是,有你的語法錯誤的第一件事。

userManager.UserTokenProvider = 
    new DataProtectorTokenProvider<User,int(dataProtectionProvider.Create("ConfirmEmail")) 

缺少一個右括號。

userManager.UserTokenProvider =  here v 
    new DataProtectorTokenProvider<User,int>(dataProtectionProvider.Create("ConfirmEmail")) 

那麼你必須調用

userManager.UserTokenProvider.TokenLifespan = TimeSpan.FromMinutes(10); 

你正在做不修改被綁定到你的UserManager但其他一些屬性UserTokenProvider的TokenLifespan的方式。

相關問題