ASPX 页的权限检查代码段

本文关键字:代码 检查 权限 ASPX | 更新日期: 2023-09-27 18:31:42

我在应用程序的每个页面中都有一个权限检查代码片段,如下所示,

<% 
int permission = Int32.Parse(Session["userpermission"].ToString());
if (permission != 1) {
    Response.Redirect("Login.aspx");
}
%>

因此,如果它不等于 1,那么它将重定向到登录页面,但现在我需要在特定页面中将权限 = 2 也添加到此条件中,其中两个权限级别 1 和 2 都可以输入,但我尝试在 OR 运算符"|"里面如果条件像(权限 != 1 | 权限 != 2),但两个权限级别都不能进入页面, 请提出解决方案。

ASPX 页的权限检查代码段

授权用户不是一个好的设计实践。未来的维护将是一场噩梦。

理想情况下,您希望使用基于角色的授权。

如果无法实现基于角色的授权,则至少可以使用基本页,并从基本页继承所有 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