我有一个MVC 6网站(asp.net core / 5),我需要检查用户是否具有剃刀页面中的特定角色。每当我调用-fno-elide-constructors
时,它每次都返回false。如果我只是调用我的RoleRepository它就可以了。
我是否需要在某处覆盖User.IsInRole("{rolename}")
功能,或者该方法在ASP.NET Core中是否过时?
到目前为止,这是我的实现:
User.IsInRole()
当我通过授权策略调用它时,这可以正常工作,如下所示:
if (User.IsInRole("Admin") || User.IsInRole("SuperUser") || User.IsInRole("DataIntegrity"))
{
model.IsDataIntegrity = true;
}
答案 0 :(得分:0)
更多谷歌搜索以及我发现的对我有用的东西:
Checking login user AuthorizePolicy in Razor page on Asp.Net Core
更具体地说,我需要将IAuthorizationService注入我的视图(或控制器),然后调用AuthorizeAsync方法。
(在视图中)
@inject IAuthorizationService AuthorizationService
...
@if (await AuthorizationService.AuthorizeAsync(User, "PolicyName"))
{
<p>This paragraph is displayed because you fulfilled PolicyName.</p>
}