C# 如何基于用户显示/隐藏视图中的元素';s权限是否在JSON中获得客户端?

C# 如何基于用户显示/隐藏视图中的元素';s权限是否在JSON中获得客户端?,c#,asp.net-mvc,json,security,user-permissions,C#,Asp.net Mvc,Json,Security,User Permissions,我有一个JSON,它为我带来了一组用户角色,这些角色为我定义了用户可以执行或不执行的操作 JSON在客户端加载。我想使用服务器端代码而不是客户端来隐藏此页面上的元素,因为这种方法更安全,不易被黑客攻击 //.Net MVC Code if (!userCanDelete){ //don't print the selector to the page } 在.Net MVC 2中有可能做到这一点吗?我在我的应用程序中也做了同样的事情,使用一个自定义HTML帮助程序 就我个人而言,我在登

我有一个JSON,它为我带来了一组用户角色,这些角色为我定义了用户可以执行或不执行的操作

JSON在客户端加载。我想使用服务器端代码而不是客户端来隐藏此页面上的元素,因为这种方法更安全,不易被黑客攻击

//.Net MVC Code
if (!userCanDelete){
    //don't print the selector to the page
}

在.Net MVC 2中有可能做到这一点吗?

我在我的应用程序中也做了同样的事情,使用一个自定义HTML帮助程序

就我个人而言,我在登录过程中获得了特定人员和特定操作的特定权限

我从JSON服务器端获得此权限(更安全!)

我将此权限存储在会话中,并在自定义助手中使用它:

public static class HtmlHelperCustom
{
    public static bool IsAccessibleToUser(this HtmlHelper helper, String element)
    {
        var user = (UserModel)HttpContext.Current.Session["currentUser"];

        return user.rights.Contains(element);
    }
}
然后在我看来,我只是用元素调用helper:

@{ 
    if (Html.IsAccessibleToUser("urlUpdate"))
    {
        <a href="@Html.DisplayFor(modelItem => item.urlUpdate)" target="_blank">
            <i class="icon-wrench" title="update">&nbsp;</i>
        </a>
    }
}
@{
if(Html.IsAccessibleToUser(“urlUpdate”))
{
}
}

您应该获取JSON服务器端或稍微修改我的解决方案。

是的,这是可能的。只需检查用户权限。我们不使用Net的用户权限对象。