C# 加上「;“许可”;属性设置为ASP.NET页

C# 加上「;“许可”;属性设置为ASP.NET页,c#,asp.net,properties,permissions,C#,Asp.net,Properties,Permissions,我有一个ASP.NET web应用程序,有3种类型的用户:用户、成员、管理员 现在,我想为每个页面创建一个方法,通过该方法我可以检查用户的类型,如果不允许他访问此页面,则应将用户重定向到主页 目前我在每页的页面加载中都有这样的代码: if (Session["userID"] != null) { User user = userDALC.Read(Convert.ToInt32(Session["userID"])); if (

我有一个ASP.NET web应用程序,有3种类型的用户:用户、成员、管理员

现在,我想为每个页面创建一个方法,通过该方法我可以检查用户的类型,如果不允许他访问此页面,则应将用户重定向到主页

目前我在每页的页面加载中都有这样的代码:

if (Session["userID"] != null)
        {
            User user = userDALC.Read(Convert.ToInt32(Session["userID"]));

            if (user.Type == 1)
            {
                Response.Redirect("~/Home.aspx");
            }
        }
        else
        {
            Response.Redirect("~/Home.aspx");
        }
此页面仅对成员和管理员可见(2,3),如果用户(1)想要访问此页面,他将被重定向

很明显,这段代码绝对不适合我使用,因为它经常重复。(每页)

现在,我的想法是为每个页面添加一个属性“permission”,在这里我可以设置允许哪些用户类型访问该页面。 我还需要一个方法来检查每个页面上的这个权限属性


任何想法,如何添加这样的属性,以及在何处添加此方法?(可能是母版?

有几个地方可以实现这种方法。在页面加载中,母版页将起作用

您可以创建自己的页面类,该类继承自核心页面类,在那里实现逻辑,并使用自定义页面类

您可以完全从页面中取出逻辑,并在global.asax中的处理程序中运行它。这里需要注意的是,此方法适用于应用程序处理的所有请求,其中可能包括javascript、css、图像、文档等请求。此外,此时您将无法访问页面对象,因此您需要根据URL确定要检查授权的请求

您可以更进一步,实现一个基于用户身份和请求详细信息检查授权的。逻辑类似于在global.asax中执行检查


然而,正如已经指出的,asp.net确实通过用户角色提供了所有这些东西

您可以使用一个基本页来完成,但是为什么不使用asp.net授权呢?