如何在视图中使用MVC角色权限?

Pat*_*ick 3 .net c# asp.net-mvc

如何根据角色中的一组用户在视图中应用权限.

例如,如何为角色编辑器显示"创建文章"按钮并将其隐藏为角色Reader?

Ral*_*oss 7

最佳实践是让Controller在ViewModel上设置属性,然后View可以检查这一点,它也使逻辑更容易测试.

它的模型工作是与View的沟通者.
然后安全逻辑不会泄漏到View中.

在您的控制器中,您可以执行以下操作:

model.IsEditor = User.IsInRole("editor")
model.IsReader = User.IsInRole("reader")
Run Code Online (Sandbox Code Playgroud)

然后,如果您查看,您可以执行以下操作:

@if (model.IsEditor)
{
  // show editor button
}

@if (model.IsReader)
{
  // show reader button
}
Run Code Online (Sandbox Code Playgroud)