[英]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.