web.config 里的经验

1.由于是web系统,所以要求用户必须登录才可以查看,所以匿名用户是不可以访问的。于是在web.config里做如下设置

 

复制代码
代码
   
   
< system.web >
<!-- 采用Forms验证 -->
< authentication mode = " Forms " >
< forms loginUrl = " LoginIn.aspx " name = " .ASPXAUTH " protection = " All " timeout = " 5 " ></ forms >
</ authentication >
<!-- 拒绝未登录用户 -->
< authorization >
< deny users = " ? " ></ deny >
</ authorization >
</ system.web >
复制代码

 这里稍微做下解释吧:

     <authentication mode="Forms“ >  这里是采用forms来验证用户是否登录,

     <forms loginUrl="LoginIn.aspx" name=".ASPXAUTH" protection="All" timeout="5"

          如果是没有登录的,则转向 loginUrl="LoginIn.aspx" 页面进行登录,

          name=".ASPXAUTH"    记录该用户的cookie名称

          protection="All"   加密方式 

          timeout="5"    保存多少失效,单位分钟

         <deny users="?"></deny>   拒绝匿名用户访问。未登录的



web.config里弄好了以后,我们就可以保护我们的web应用必须登录才能使用。

 

 

2.当页面出错,让页面自动跳转至指定页面

 

复制代码
代码
   
   
< system.web >
< customErrors mode = " RemoteOnly " defaultRedirect = " ~/AllSystem/S_Error.htm " >
< error statusCode = " 403 " redirect = " NoAccess.htm " />
< error statusCode = " 404 " redirect = " FileNotFound.htm " />
</ customErrors >
</ system.web >


// 注意:由于我是分开写的,所以加上<system.web>,而在实际的web.config里的 它们应该是一起的,所以在复制的时候注 意下。
复制代码

 通过以上的设置,即可。

 

3.说说我昨天的问题

我按照上面的做法,把验证方式改成Form,拒绝匿名登录,然后把S_Error.htm放入到另外一个文件夹叫AllSystem

以前是放在jscss里的,这里有个web.config允许匿名访问) ,接下来,

我要改正页面的判断,把业务逻辑转到biz层(因为之前写到view层),

代码如下:

 

复制代码
代码
   
   
public static void LoginInLoadCheck( string t, string name,Label lblCompany, Page p)
{
if (t == null || name == null )
{
HttpContext.Current.Response.Redirect(
" ~/AllSystem/S_Error.htm?key= " + LogSystem.NotPremission); // 就是这里5次F5后才能执行跳转,而且跳的还不对
}
else
{
string nname = Md5.MD5Decrypt(name);
if (nname.Equals( "" ))
{
HttpContext.Current.Response.Redirect(
" ~/AllSystem/S_Error.htm?key= " + LogSystem.ParameterError);
}
lblCompany.Text
= nname;
p.Title
= lblCompany.Text + " 欢迎你使用··· " ;
}
}
复制代码

 

 

 

后,浏览器报出无法显示该页,后来一步步调试,转到此处时,按了5次F5 才跳转,我就非常郁闷,因为就是一个简单

跳转,也会出现问题。试了很多次,都不行。重新把代码放到view层,也还是不行,更郁闷了,,,,

 

后来想到是权限问题,才想起来,由于是第一次访问,所以得让S_Error.htm允许任何人访问,不然的话,一辈子你也进不了

 

于是在AllSystem的文件 夹里添加一个web.config,(也有其他的办法,就是用<location>来进行配置,由于时间紧,没来得及做case

 

注:每个文件夹里的web.config只限于该文件夹,不限于其他文件夹,

 

即可。web.config代码如下:

 

 

 

复制代码
代码
   
   
<? xml version = " 1.0 " encoding = " utf-8 " ?>
<!-- 注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来
配置应用程序的设置。可以使用 Visual Studio 中的“网站”
-> “ASP.NET 配置”
选项。
设置和注释的完整列表在
machine.config.comments 中,该文件通常位于 \Windows\Microsoft.NET\Framework\v2.
0 .xxxxx\Config 中
-->

< configuration >
< system.web >
< authorization >
< allow users = " * " />
</ authorization >
</ system.web >
</ configuration >
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值