作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个可以匿名访问的 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/
我是一名优秀的程序员,十分优秀!