簡體   English   中英

用戶的聲明身份

[英]User's Claims Identity

目前有兩種登錄方式。 一個是通過活動目錄,我能夠獲得用戶的聲明身份。

第二種是通過自定義注冊表單,即使我可以使用以下代碼獲取用戶的聲明信息:

foreach (Microsoft.IdentityModel.Claims.Claim claim in identity.Claims)
{
    Console.Write("Type: " + claim.type);
}

輸出:

claimtype=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
value=test@mail.com

我遇到的問題是,我試圖獲取自定義寄存器聲明的值,然后將其保存到用戶表,使用下面的代碼,但沒有運氣

var myemail = identity.Claims.First(c => c.ClaimType == "EmailAddress").Value;

錯誤說:

“序列不包含任何元素”

索賠類型是

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

不是EmailAddress 如果您不想重復整個類型,請使用ClaimTypes.Email

var myemail = identity.Claims.First(c => c.ClaimType == ClaimTypes.Email).Value

您的錯誤表明沒有類型EmailAddress是正確的。 然后你嘗試獲取空集合的第一個元素,你會得到實際的異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM