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),但两个权限级别都不能进入页面, 请提出解决方案。
授权用户不是一个好的设计实践。未来的维护将是一场噩梦。
理想情况下,您希望使用基于角色的授权。
如果无法实现基于角色的授权,则至少可以使用基本页,并从基本页继承所有 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
。