Asp.net-Identity

asp.net身份.GenerateUserToken()有什麼用

  • January 28, 2020

我了解 userManager.GeneratePasswordResetToken() 中的令牌用於在超連結中添加作為安全標識符,以便在密碼重置請求時發送給使用者。

但我不確定 userManager.GenerateUserToken() 的使用者是什麼。我能夠生成令牌,但不確定這是否可以轉換為 SAML 令牌之類的聲明並用於授權。

請幫助我理解這一點,因為我找不到任何關於此的好的文件。

GenerateUserToken()用於創建密碼重置令牌和電子郵件確認令牌。此方法採用字元串參數,該參數purpose描述將要發生的操作類型。實際上,這purpose是用於解密生成的令牌的加密密鑰。

因此,您可以為自己的目的創建自己的代幣,例如您可以ConfirmJobOffer在招聘應用程序中進行操作。您可以僅為該操作創建令牌並將帶有此令牌的連結發送給使用者:

var token = userManager.GenerateUserToken(userId, "ConfirmJobOffer");
// now send this token as part of the link

然後在控制器中,一旦將令牌返回給您,您就可以呼叫:

var tokenCorrect = await userManager.VerifyUserTokenAsync(userId, "ConfirmJobOffer", token);
if (tokenCorrect)
{
   // do stuff if token is correct
}

通常你不會GenerateUserToken直接使用,除非你正在做自定義令牌。你會使用GeneratePasswordResetTokenAsyncand GenerateEmailConfirmationTokenAsync

請注意:這不是為了做 SAML 令牌或相關授權。

引用自:https://stackoverflow.com/questions/27898123