c# - 身份服务器授权代码流示例 - 读取声明
问题描述
我已经使用代码流实现了一个身份提供者和一个客户端应用程序。在验证他的令牌并查看索赔时,我找不到与我正在起诉的用户相关的索赔。代码与Identity Server 4 Authorization Code Flow 示例非常相似
private IEnumerable<Claim> ValidateToken(string token)
{
var certPath = Path.Combine(Server.MapPath("~/bin"), "SscSign.pfx");
var cert = new X509Certificate2(certPath);
var x509SecurityKey = new X509SecurityKey(cert);
var parameters = new TokenValidationParameters
{
RequireSignedTokens = true,
ValidAudience = audience,
ValidIssuer = validIssuer,
IssuerSigningKey = new X509SecurityKey(cert),
RequireExpirationTime = true,
ClockSkew = TimeSpan.FromMinutes(5)
};
var handler = new JwtSecurityTokenHandler();
SecurityToken jwt;
var id = handler.ValidateToken(token, parameters, out jwt);
foreach (Claim claim in id.Claims)
{
**I can't see any claim for key email**
}
this.Request.GetOwinContext().Authentication.SignOut("TempCookie");
return id.Claims;
}
如果有人可以帮助我阅读电子邮件声明,我将不胜感激。@bayardw
解决方案
I'm sure you don't have a claim with email. You can check it here jwt.io
You have to define it in settings for Resources docs.identityserver.io
推荐阅读
- python - 复制对象时,是否可以保持身份相同?
- python-2.7 - Python:导入从何而来?
- python - 在 Python 中的列表上/内部拆分
- leaflet - 我可以使用 Leaflet Draw 将图层添加到覆盖图层吗?
- node.js - 如何使用 multer 在 node.js 服务器中上传文件
- sql - 进行数百个数据库更新的正确方法?
- python - 将文本文件中列出的特定文件从源文件夹复制到目标文件夹
- ffmpeg - FFMpeg:如何使用 between() 选择最后一秒?
- libreoffice-writer - 使用 LibreOffice 拼写检查器
- php - 不考虑 PHP 顺序的字符串比较