我在我的asp.net核心应用程序中设置了cookie身份验证 . 我有一个登录页面,其中凭据与活动目录匹配 . 这一切都很好 . 接下来我想在我的应用程序中实现授权 . 我有一个用户表以及对他们的许可 . 例如阅读和写作等权限 . 当用户成功通过身份验证后,我想检查这些权限并在限制其他权限的同时向他们显示某些功能 . 例如,在隐藏读取权限时显示写入权限的某些下拉列表 .
在.NET Core中处理此问题的最佳方法是什么 . 我读过有关添加政策的内容:
services.AddAuthorization(options => {
options.AddPolicy("Read", policy =>
policy.RequireClaim("Read", "MyCLaim"));
});
然后在我的控制器中:
[Authorize(Policy = "Read")]
public class HomeController : Controller
{
}
从哪里可以从我的数据库获取登录用户的权限,以及如何验证用户是否具有这些权限 .
会很感激投入 .
1 回答
在用户通过身份验证后,您将收集用户的声明,并将其存储在身份验证Cookie中 .
例如,SignInAsync方法 .
仅供参考:恰好是我将它们存储为角色声明 . 如果你不想要的话,你不必遵循那条路线 .
然后,您可以验证Startup.cs中的策略 .
Usage与您所描述的相同 .