簡體   English   中英

ASPX頁面的權限檢查代碼段

[英]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總是正確的。
畢竟,沒有可能的數字可以等於12 ,因此它將始終等於它們之一。

你要檢查它是否不等於1 也不等於2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM