gpt4 book ai didi

c# - 如何在没有 Authorize 属性的 ASP Core 2 方法中获取用户声明?

转载 作者:行者123 更新时间:2023-12-04 00:32:51 24 4
gpt4 key购买 nike

我有一个可以匿名访问的 API 方法。我想使用资源授权来确定用户是否有权访问。如果对象是“公共(public)的”,那么任何人(包括匿名用户)都可以访问它。如果对象是“私有(private)的”,则只能由登录用户查看。如果我在方法上有一个授权属性,这个逻辑就可以正常工作,但如果没有,即使用户登录也没有声明。

有没有办法在没有 Authorize 属性的方法中获取用户的声明?

方法如下:

    [HttpGet]
[Route("name/{name}")]
public async Task<IActionResult> Get(string name)
{
var activity = Repo.GetCommandLineActivity(name);
if (activity == null)
{
return NotFound();
}

var isAuthed = await _authService.AuthorizeAsync(User, activity, new ViewIPublicPrivateRequirement());
if (isAuthed.Succeeded)
{
return Ok(activity);
}

return Unauthorized();
}

最佳答案

解决方案其实很简单,添加 [AllowAnonymous][Authorize] 就可以了。

关于c# - 如何在没有 Authorize 属性的 ASP Core 2 方法中获取用户声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453591/

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