gpt4 book ai didi

asp.net-mvc - 我可以从服务器端的承载 token 中检索用户信息 - web api 2吗?

转载 作者:行者123 更新时间:2023-12-04 10:24:41 26 4
gpt4 key购买 nike

这是我的场景:我有一个 MVC Web 应用程序和 Web API。 Web 应用程序调用 Web api 以从服务器保存/检索数据。

假设这是一个问答网站。现在我有一个 API,如果我提供用户名、密码,它会给我用户 ID。但是网站中还有其他区域,并且很容易检索其他用户的用户名。我将用户 ID 保存在 session 存储中,并在需要时将其发送到 POST 对象中。现在,任何用户都可以在 session 存储中调整该用户 ID,并且他们可以代表其他用户发布问题/答案。

我怎样才能防止这种情况?我正在考虑的一种方法,但不确定这是否是可行的解决方案 - 我们可以从服务器端提供的承载 token 中检索用户 ID 吗?

最佳答案

一旦您使用资源所有者凭证流在 Web API 中建立基于 token 的身份验证,并且当您使用 [Authorize] 为 protected Controller 分配属性时,您当然可以做到这一点。 .您将发送到此 protected 端点的有效不记名 token 将创建 ClaimsPrincipal用户存储在其中的主体(身份)对象,您可以获取用户名,如下所示:

[RoutePrefix("api/Orders")]
public class OrdersController : ApiController
{
[Authorize]
[Route("")]
public IHttpActionResult Get()
{
ClaimsPrincipal principal = Request.GetRequestContext().Principal as ClaimsPrincipal;

var Name = ClaimsPrincipal.Current.Identity.Name;
var Name1 = User.Identity.Name;

return Ok();
}

}

有关更多详细信息,您可以阅读我关于此的详细帖子 topic here .

关于asp.net-mvc - 我可以从服务器端的承载 token 中检索用户信息 - web api 2吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29196920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com