1

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

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

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

.Net MVC 2可以做到这一点吗?

4

1 回答 1

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);
    }
}

然后在我的视图中,我只是用元素调用助手:

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

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

于 2012-07-25T21:24:29.410 回答