Asp.net

如何根據使用者的角色創建具有不同顯示的視圖?

  • March 24, 2016

我想根據使用者的角色創建一個具有不同顯示的視圖。

我應該為不同的角色創建不同的視圖,還是應該在 Veiw 頁面本身而不是在操作中檢查角色?

如何在查看頁面上查看角色?

或者我應該使用檢查 Veiw 頁面上的角色而不是動作,如果可以的話,有人可以告訴我如何在查看頁面上檢查

你需要兩者都做。檢查操作中的角色作為安全措施並檢查視圖中的角色以啟用/禁用特定控制項。

在您的視圖頁面中,檢查角色的長形式是

HttpContext.Current.User.IsInRole("Administrator")

許多開發人員將創建頁面幫助方法,以便您最終為您的應用程序提供更簡潔的東西,例如

public static bool IsAdmin(this ViewUserControl pg)
{
   return pg.Page.User.IsInRole("Administrator")
}

那麼在您看來,您可以只使用this.IsAdmin()

為了使您的視圖保持混亂,請考慮使用部分視圖

<% if (IsAdmin())
  {
     Html.RenderPartial("AdminPanel");
  }
  else
  {
     Html.RenderPartial("UserPanel");
  }
%>

引用自:https://stackoverflow.com/questions/409213