我们的网站某些功能可能需要用户登录后才能访问,但是有些用户可能记录下了访问后的页面的地址,可能下次想试试直接用这些地址来跳过登录页面的限制!一旦成功,则暴露出很多漏洞,我们为了防止这样的事情发生,采取下面的方法来保护。
Webconfig文件配置:
<authentication mode="Forms"><forms loginUrl="Logon/Logon.aspx"></forms></authentication>
<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
(未经身份验证的)用户。
-->
<authorization>
<deny users="?" /> <!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<authorization>
<allow users="*" /> <!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>
<!-- 应用程序级别跟踪记录
应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。
设置 trace enabled="true" 可以启用应用程序跟踪记录。如果 pageOutput="true",则
在每一页的底部显示跟踪信息。否则,可以通过浏览 Web 应用程序
根目录中的 "trace.axd" 页来查看
应用程序跟踪日志。
-->
</system.web>
</configuration>
cs文件代码:
using System.Web.Security;
Response.Redirect("http://localhost/ChinaModelWeb/Main.aspx");
FormsAuthentication.SignOut();
Response.Redirect("Logon//Logon.aspx");