[英]How to retrieve claims in specific format in c sharp?
在进行单元测试时,我有以下代码在身份验证后为我的用户检索声明:
var claims = new List<Claim>()
{
new Claim(ClaimTypes.GivenName, "John"),
new Claim(ClaimTypes.Surname, "Doe"),
new Claim(ClaimTypes.Email, "john.doe@gmail.com"),
};
上面的代码以以下格式返回声明 -eg for GivenName
:
{http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname: John}
但是我的控制器期望它采用这种格式:
{firstname: John}
有没有办法调整我的代码以根据控制器要求返回它?
我的控制器中的声明也有名字标签,但是在单元测试中创建虚拟声明时没有这样的标签,而不是名字,它只允许我使用 givenname 标签,有没有办法改变这个?
声明基本上只是一个键/值对,并允许您像这样构造它:
new Claim("firstname", "John")
请参阅MSDN 。
关于这一点:
我的控制器中的声明也有名字标签,但是在单元测试中创建虚拟声明时没有这样的标签,而不是名字,它只允许我使用 givenname 标签,有没有办法改变这个?
根据单元测试实际测试的内容,这可能表明出现了问题。 如果有疑问,最好咨询查看文档的作者。
请注意:它没有在单元测试中退出的事实并不一定意味着它是错误的 - 您应该仔细查看测试的实际内容。
请试试这个
var claims = new List<Claim>()
{
new Claim("firstname", "John"),
new Claim("surname", "Doe"),
new Claim("email", "john.doe@gmail.com"),
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.