您好: 在我的应用程序中,站点中的所有内容仅对登录用户开放,也就是说如果我有以下页面:
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中创建它。
感谢。
答案 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>