繁体   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