我想让用户在访问我的程序的Admin文件夹下的页面时需要登录,而在访问其他页面时则不需要,也就是说Admin文件夹下的文件拒绝匿名访问.
下面是配置根目录下的web.config文件中关于授权验证的配置
<system.web>
<authentication mode="Forms">
<forms name="login" loginUrl="Admin/Login.aspx"></forms>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
<location path="Admin">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
如果要限定admin文件夹中的某个图片文件夹可以匿名访问,则可以加上
<location path="upload/pic">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
在Admin/Login.aspx.cs中登录后保存cookie
System.Web.Security.FormsAuthentication.RedirectFromLoginPage("login", true);
其中login是cookie名称,如果一个默认则在web.config中会默认识别。
true 表示cookie在浏览器中关闭时也保存。
清空cookie
System.Web.Security.FormsAuthentication.SignOut();