舉個簡單的例子,你可以這樣做:
<%
if (User.IsInRole("AdminRole")
Html.RenderPartial("AdminMenu");
else if (User.IsInRole("Approver")
Html.RenderPartial("ApproverMenu");
else if (User.IsInRole("Editor")
Html.RenderPartial("EditorMenu");
%>
或者是你的用戶可以在多個角色,在這種情況下是這樣的邏輯可能更合適:
<%
if (User.IsInRole("AdminRole")
Html.RenderPartial("AdminMenu");
if (User.IsInRole("Approver")
Html.RenderPartial("ApproverMenu");
if (User.IsInRole("Editor")
Html.RenderPartial("EditorMenu");
%>
或者使用擴展方法爲後者提供更優雅的方法:
<%
Html.RenderPartialIfInRole("AdminMenu", "AdminRole");
Html.RenderPartialIfInRole("ApproverMenu", "Approver");
Html.RenderPartialIfInRole("EditorMenu", "Editor");
%>
與
public static void RenderPartialIfInRole
(this HtmlHelper html, string control, string role)
{
if (HttpContext.Current.User.IsInRole(role)
html.RenderPartial(control);
}
是的,我希望的東西多了幾分優雅!但我同意這是一個工作。 – Rippo 2009-11-17 15:43:50
感謝您的回答! – Rippo 2009-11-17 15:44:56
@Rippo是的,我明白了。其實,你可以嘗試一種擴展方法。我會舉一個例子。 – Joseph 2009-11-17 15:45:33