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