【问题标题】:ASP .NET 4.7 MVC Authentication and Authorization IdentityASP .NET 4.7 MVC 身份验证和授权标识
【发布时间】:2018-12-15 21:48:51
【问题描述】:
我正在创建一个 MVC Web API。端点将通过自定义令牌隐藏在身份验证后面。但是,还会对某些单独的端点进行范围界定,访问管理员等。我试图弄清楚如何创建用户,或者,当用户通过身份验证以在授权过滤器中设置他时,我可以验证他是否是管理员,或者他是否在该端点具有对该特定资源的读取权限。
最好的方法是什么,我可以在身份验证过滤器中设置身份主体,还是有更好的方法?
【问题讨论】:
标签:
c#
asp.net
security
asp.net-web-api
【解决方案1】:
你可以使用 [Authorize] 属性我的朋友,
首先:将 AuthorizeAttribute 过滤器添加到全局过滤器列表中:
public static void Register(HttpConfiguration config)
{
config.Filters.Add(new AuthorizeAttribute());
}
第二:为了保护您的控制器,将过滤器作为属性添加到控制器
// Require authorization for all actions on the controller.
[Authorize]
public class ValuesController : ApiController
{
public HttpResponseMessage Get(int id) { ... }
public HttpResponseMessage Post() { ... }
}
三个为了保护你的动作,将属性添加到动作方法中:
public class ValuesController : ApiController
{
public HttpResponseMessage Get() { ... }
// Require authorization for a specific action.
[Authorize]
public HttpResponseMessage Post() { ... }
}
我建议你访问这个 2 链接可以帮助你更多:
Authentication and Authorization in ASP.NET Web API
MVC Web API: Authorization & Authentication