如何在asp.net中控制权限

时间:2011-04-16 07:25:10

标签: asp.net authentication

您好: 在我的应用程序中,站点中的所有内容仅对登录用户开放,也就是说如果我有以下页面:

Default.aspx
Document.aspx
xxx.aspx
....
SysConfig.aspx

当然有一个登录页面:login.aspx

所有页面都排除“ login.aspx ”受保护,只有登录用户才能看到它们, SysConfig.aspx 只对其类型的用户开放是“管理员”。

那么如何控制呢?

例如,当用户从login.aspx登录时,我可以将相关信息保存到“Session”,然后在“Default.aspx.cs”中我可以使用:

if(Session["user"]==null).....

但如果是这样,我必须在每个受保护的页面(Document.aspx.cs / xxx.aspx.cs)中编写相同的代码,我想知道是否有一个简单的方法?

在java中,我可以简单地使用struts2的拦截器,但我不知道如何在asp.net中创建它。

感谢。

1 个答案:

答案 0 :(得分:1)

system.web部分的web.config文件中添加:

<authorization>
    <deny users="?"/>
</authorization>

这将阻止任何未经身份验证的用户访问您的文件。

并为您的管理员用户设置对SysConfig

的访问权限
<location path="SysConfig.aspx">
    <system.web>
        <authorization>
            <deny users="?"/>
            <allow roles="Admin"/>
        </authorization>
    </system.web>
</location>

修改:要允许对匿名用户访问login.aspx,请添加以下内容:

<location path="Login.aspx">
    <system.web>
        <authorization>            
            <allow users="*"/>
        </authorization>
    </system.web>
</location>