加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP MVC中的视图中的权限

发布时间:2020-12-16 06:41:06 所属栏目:asp.Net 来源:网络整理
导读:我了解您可以使用表单身份验证根据您选择的条件授予/拒绝对某些页面的访问权限. 但是我希望比这更具体一点,并且说,根据用户的权限为用户显示不同的按钮. 我知道我可以做点什么 if(((User)ViewData["CurrentUser"]).IsEmployee)..... 但这似乎并不优雅,很快就
我了解您可以使用表单身份验证根据您选择的条件授予/拒绝对某些页面的访问权限.

但是我希望比这更具体一点,并且说,根据用户的权限为用户显示不同的按钮.

我知道我可以做点什么

if(((User)ViewData["CurrentUser"]).IsEmployee).....

但这似乎并不优雅,很快就会变得混乱.

是否有任何指南/工具/框架功能可以帮助我在这里?

解决方法

使用基于角色的身份验证,然后适当地设置角色.然后你可以做以下事情:

if (ViewContext.HttpContext.User.IsInRole("vEmployee") {

这样做的好处在于它是ASP.NET的核心功能 – 甚至不是特定于MVC的 – 因此它可以与每个可能的成员资格提供者一起使用.

然后,您可以为要有条件地显示的任何控件添加视图助手重载:

public static string TextBox(this HtmlHelper helper,string name,string value,string role,object htmlAttributes)
{
   if helper.ViewContext.HttpContext.User.IsInRole(role) {
       return helper.TextBox(name,value,htmlAttributes);
   } 
   else
   {
       return null;
   }
}

……并称之为:

<%= Html.TextBox("name","value","vEmployee",null) %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读