【问题标题】:Azure token "interpretation" C# Rest ServiceAzure 令牌“解释”C# Rest Service
【发布时间】:2022-07-08 04:22:22
【问题描述】:

我正在开发一项服务,将移动应用程序与我们的系统数据库连接起来,我们正在使用 Azure 来验证用户的访问权限,这是我第一次这样做,接下来是我遵循的步骤:

在我们的 Azure 活动目录中注册 API。 将参数提供给我们的第三方,以便他们可以通过用户电子邮件连接并进行登录。 我开发了一个“捕获”授权令牌的服务,以便我可以在我的代码上使用它,我使用了这个:

string Token = Request.Headers["Authorization"];

使用它我可以获取发送给我的令牌,但我想获取用户信息,以便我可以在我们的 SQL 中查找该用户信息,然后以 JSON 格式从移动应用程序返回所需的数据(我已经有该代码,但数据是一个示例,因为我无法获取令牌信息以找到正确的用户数据)

有没有办法可以从令牌中进行解释?出于安全原因,我不能举一个令牌示例,但我只想知道这是否可能,以及我该怎么做。

感谢您的帮助。

【问题讨论】:

  • 很难说你想做什么......但我猜你的意思是解码 JWT? stackoverflow.com/a/38911599/1537195
  • 我试过了,但代码说 JwtSecurityTokenHandler 无法识别,就像开头缺少“使用”一样,我在这方面很新。
  • 好吧,我很确定缺少 using(s)... 甚至可能需要一些 nuget 包。抱歉,但我认为您应该先学习一些 dotnet 基础知识,然后再开始编写与安全相关的代码。

标签: c# json azure rest single-sign-on


【解决方案1】:

Después de Consultar y practicar encontré la respuesta、y la comparto para quien le pueda servir、consideando que mi código inicia como lo puse en la pregunta、de forma completa sería lo siguiente:

string Token = Request.Headers["Authorization"];
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(Token);
var tokenS = jsonToken as JwtSecurityToken;
string Correo = tokenS.Claims.First(claim => claim.Type == "unique_name").Value.ToString();

Donde "unique_name" forma parte de uno de los valores que incluye el JWT (Token) para poder utilizar este código es necesario buscar el nuget de JwtSecurityTokenHandler y agregarlo al proyecto。

Ya con los valores guardados en una variable, puedo trabajar mi código, espero a alguien le sirva esta explicación。

感谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2021-10-20
    • 2016-08-10
    • 1970-01-01
    相关资源
    最近更新 更多