[英]Permission Check Code Snippet for an ASPX Page
我在應用程序的每個頁面中都有一個權限檢查代碼段,如下所示,
<%
int permission = Int32.Parse(Session["userpermission"].ToString());
if (permission != 1) {
Response.Redirect("Login.aspx");
}
%>
因此,如果它不等於1,則它將重定向到登錄頁面,但是現在我需要在特定頁面中將此條件中也添加權限= 2,在該頁面中,權限級別1和2都可以輸入,但是我嘗試使用OR運算符“ |” 如果條件類似(權限!= 1 |權限!= 2),則兩個權限級別都不能進入該頁面,請提出解決方案。
授權用戶不是一個好的設計實踐。 將來的維護將是一場噩夢。
理想情況下,您要使用基於角色的授權。
如果無法實現角色基礎授權,則至少可以使用BasePage ,並從BasePage繼承所有xxx.aspx.cs。
public partial class Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
public class BasePage : System.Web.UI.Page
{
protected void Page_Init(object sender, EventArgs e)
{
int permission = Convert.ToInt32(Session["userpermission"] ?? "0");
if (permission == 1 || permission == 2)
{
// User is authorized, so allow access.
}
else
{
Response.Redirect("Login.aspx");
}
}
}
您也可以使用這樣的邏輯。 我個人不喜歡它,因為它很難閱讀。
if (permission != 1 && permission != 2)
{
Response.Redirect("Login.aspx");
}
檢查權限是不等於1
還是不等於2
總是正確的。
畢竟,沒有可能的數字可以等於1
和2
,因此它將始終等於它們之一。
你要檢查它是否不等於1
,也不等於2
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.