![](/img/trans.png)
[英]Is there a way to authenticate an ASP.NET Core MVC controller action using an Azure AD token?
[英]How to secure controller access using Azure AD and asp.net MVC
如果我使用Azure AD进行身份验证,我想知道如何正确保护API。
据我所知,在控制器上使用[Authorize]
将要求用户登录。 但是一旦进入,即使我将用户分为几组,例如:
Members
Moderators
Administrators
如何确保会员只能访问其帐户信息?
我知道我可以与
[Authorize(Roles="Member")]
但是,这将允许所有成员访问控制器。 我怀疑使用PostMan的用户可以获取其令牌并从其他成员中查找数据。
如何保护控制器,使其仅返回特定用户帐户的数据? 控制器将通过实体框架引用SQL Server。
我知道的唯一方法是手动创建查询以匹配经过身份验证的用户,因为这特定于控制器中每个操作检索的数据类型。
例如,要检索经过身份验证的用户名,您可以执行以下操作:
[Authorize]
public class MyApiController : ApiController
{
[HttpGet]
public IHttpActionResult GetDataForLoggedUser()
{
var userName = HttpContext.Current.User.Identity.Name;
// retrieve data for specific user...
return Ok();
}
}
为了检索用户名,您需要[Authorize]
(至少在您不希望像我的示例那样在整个控制器中使用的情况下,需要进行此操作),否则您将无法检索它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.