程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在 .NET Core Entity Framework 中获取授权标头值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何在 .NET Core Entity Framework 中获取授权标头值?

开发过程中遇到如何在 .NET Core Entity Framework 中获取授权标头值的问题如何解决?下面主要结合日常开发的经验,给出你关于如何在 .NET Core Entity Framework 中获取授权标头值的解决方法建议,希望对你解决如何在 .NET Core Entity Framework 中获取授权标头值有所启发或帮助;

我正在后端使用 JWT 令牌,我的问题是当我的方法上方有 [Authorize] 注释时,如何读取授权标头的值。我需要令牌,因为在它的有效负载中保存了一个用户 ID,我需要 ID 来执行几个操作(当然令牌首先得到验证)。

在我的前端,我添加授权标头如下:

axios.post(finalurl,{accesstoken: localstorage.accesstoken},{headers: {
            'Authorization': `Bearer ${(localstorage.accesstoken)}`
        }})

在我的后端:

[Authorize]
[httpPut("{ID}")]
public async Task<ActionResult<UserWithToken>> PutUser(int id,[FromForm] User user)
{
    // ....
}

我知道也可以将令牌作为主体中的对象传输,但这会使事情变得更加复杂,因为当我使用这种方式时,我总是必须创建从对象继承的新模型我想转移并获得额外的令牌属性。

解决方法

如果您只想获取用户 ID 并将其作为声明存储在令牌中,您可以像这样通过 httpContext 获取它:

@H_197_25@httpContext.User? .Claims? .FirstOrDefault(c => c.Type == JwtRegisteredClaimnames.Sub)? .Value

当然,如果您使用不同的声明类型,您可以将 JwtRegisteredClaimnames.Sub 替换为您的声明所称的任何内容。

httpContext.User 是与当前请求关联的用户的 ClaimsPrincipal

,

试试这个:

public async Task<ActionResult<UserWithToken>> PutUser(int id,[FromForm] User user)
{
var token = String.Empty;
var header = (String)httpContext.request.Headers["Authorization"];
if (header != null) token = header.SubString(7);
.....
}

大佬总结

以上是大佬教程为你收集整理的如何在 .NET Core Entity Framework 中获取授权标头值全部内容,希望文章能够帮你解决如何在 .NET Core Entity Framework 中获取授权标头值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。