1
我有一个asp.net MVC 3系统,其中不同的操作具有不同的权限。网络系统权限最佳实践
所有权限都使用定义所需用户权限的属性进行管理。
我还想删除用户不允许点击的任何按钮(或链接)。
有什么办法可以做到这一点,而不是在我的意见中做了很多if-s?
谢谢。
我有一个asp.net MVC 3系统,其中不同的操作具有不同的权限。网络系统权限最佳实践
所有权限都使用定义所需用户权限的属性进行管理。
我还想删除用户不允许点击的任何按钮(或链接)。
有什么办法可以做到这一点,而不是在我的意见中做了很多if-s?
谢谢。
有没有办法做到这一点,而没有在我的意见中做很多if-s?
您可以编写自定义HTML助手来生成这些按钮。例如:
@Html.Button("button text", "role1,role2");
自定义助手将检查当前用户是否posses所需要的角色之一,只有在这种情况下产生的相应按钮。
例如:
public static class HtmlExtensions
{
public static IHtmlString Button(this HtmlHelper htmlHelper, string buttonText, string roles)
{
var rolesSplit = (roles ?? string.Empty).Split(',');
var user = htmlHelper.ViewContext.HttpContext.User;
if (!user.Identity.IsAuthenticated || !rolesSplit.Any(user.IsInRole))
{
return MvcHtmlString.Empty;
}
var button = new TagBuilder("button");
button.SetInnerText(buttonText);
return new HtmlString(button.ToString());
}
}