如何根据用户的ASP.NET标识角色向用户完全隐藏元素



目标:根据用户在ASP.NET Identity中的角色,对用户隐藏某些元素(如页面链接(。

我尝试过的:[Authorize(Roles = IdentityHelper.Administrator)]

(如果你在某些元素上加上注释,比如页面,这确实会限制对它们的访问,但它不会隐藏元素本身。我希望它两者都能做到。(我对用户隐藏这些元素并不完全重要,因为它们已经受到限制,但这会让我的网站对用户看起来更好。

(IdentityHelper只是一个助手类,用于设置有关管理员角色的所有详细信息(

代码示例:

//Restricts access, which is good, but does not completely hide elements from user.
[Authorize(Roles = IdentityHelper.Administrator)] 
public  async Task <IActionResult> Edit(int id)
{
//get pixel art with corrosponding id
PixelArt p =  await PixelDBManager.GetSinglePixelAsync(id, _context);
//pass pixel art to view
return View(p);
}

我应该切换到基于声明或策略的身份而不是角色,还是可以坚持使用角色来解决这个特定的问题?

您可以在Razor模板中使用User.IsInRole()

@if(User.IsInRole(IdentityHelper.Administrator))
{
<h1>I'm an administrator</h1>
}

相关内容

  • 没有找到相关文章

最新更新