应用web.config的惯用配置

应用web.config的常用配置

1.配置Access的数据库连接
数据库连接字符串的常用参数
(1)Provider这个属性用于设置或返回连接提供程序的名称,仅用于OleDbConnection对象
(2)Initial或Database 数据库名称
(3)Data Source或Server连接打开时使用的SQL Server名称,或者是Microsoft Access数据库名称
(4)Password或Pwd SQL Server账户的登录密码
(5)User ID或Uid SQL Server登录账户
在Web.config中的配置如下:

<appSettings>
    <add key="accessCon" value="Provider=Microsoft.Jet.OLEDB.4.0;
                                Data Source=|DataDirectory|db_access.mdb"/>
  </appSettings>

 代码中获取链接如下:

OleDbConnection oCon = new    OleDbConnection(ConfigurationManager.AppSettings["accessCon"]);
oCon.Open();


2.配置Sql Server数据库连接
在Web.config中的配置如下:

<appSettings>
    <add key="sqlCon" value="Data Source=(local);Database=Northwind;Uid=sa;Pwd=;"/>
  </appSettings>

代码中获取链接如下:

string con_sqlserver = ConfigurationManager.AppSettings["sqlCon"].ToString();
SqlConnection con = new SqlConnection(con_sqlserver);
con.Open();

 
3.配置Session变量的生命周期
在Web.config中的<system.web>下配置如下:
<!--配置Session变量的生命周期,1分钟-->
    <sessionState mode="InProc" timeout="1"></sessionState>
(1)mode:会话状态。
      Off:禁用会话状态    InProc:工作进程自身存储会话状态
      StateServer:将把会话信息存放在一个单独的ASP.NET状态服务中
      SqlServer:将把会话信息存放在SQL Server数据库中
(2)StateConnectionString:该参数用于设置ASP.NET应用程序存储远程会话状态的服务器,默认为本地
(3)Cookieless:Ture:表示不使用Cookie会话标识客户
                 False:表示启动Cookie会话状态
(4)Timeout:该参数用于设置会话时间,超过该期限,会自动中断会话,默认设置为20秒,
              但不能设置超过525600分钟(1年)的值

4.配置限制文件上传的大小与时间
在Web.config中的<system.web>下配置如下:
<!--限制上传文件的大小与时间,4M 100s-->

<httpRuntime maxRequestLength="4096" executionTimeout="100"/>

(1)maxRequestLength:用于防止服务攻击默认值为4096KB(4MB)
(2)executionTimeout:在ASP.NET应用程序自动关闭前,允许执行请求的最大秒数
注:只用当compilation元素中的调试属性为False时,此超时属性才适用。默认值110s

5.配置连接默认错误页面
在Web.config中的<system.web>下配置如下:
<!--错误页面-->

 <customErrors defaultRedirect="error.htm" mode="On"></customErrors>

(1)Mode:On表示启动自定义错误 Off表示禁用自定义错误 RemoteOnly仅向远程客户端显示自定义错误,并且向本机显示ASP.NET错误,默认值为RemoteOnly
(2)defaultRedirect:网页出错时,浏览器定向到默认的URL地址,如果未指定该属性,则显示一般性错误。

6.1配置验证级别,禁用访问者不通过身份验证而强行进入其他页面
在Web.config中的<system.web>下配置如下:
<!--配置验证级别(未登录,不能跳转到其他需要登录的界面)-->

  <authentication mode="Forms">
      <forms name="myCookie" loginUrl="login.aspx">
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>

mode:Windows -> 将windows验证指定为默认的身份验证模式
      Forms -> 将ASP.NET基于窗体的身份验证指定为默认的身份验证模式
      PassPort -> 将Microsoft的集中身份验证指定为默认身份验证模式
      None -> 不指定任何身份验证
注:配置用户验证级别时,还需要在<authorization>节点中指定<deny/>元素,以限制未登录用户不能访问需要身份验证的页面。
程序中的代码设计如下:

if (TextBox1.Text == "hello" && TextBox2.Text == "world")
{
   FormsAuthentication.SetAuthCookie(TextBox1.Text.Trim(), false);
   //----
  }else{//----}

 
6.2利用配置文件实现窗体验证是指在Web.config文件中设置验证的用户名和密
<!--配置验证级别(未登录,不能跳转到其他需要登录的界面)-->
    

<authentication mode="Forms">
      <forms name="myCookie" loginUrl="login.aspx">
        <credentials passwordFormat="MD5">
          <user name="jr" password="FDB390E945559E74475ED8C8BBB48CA5"/>
        </credentials>
      </forms>
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

相对应的程序验证代码如下:

 if(FormsAuthentication.Authenticate(TextBox1.Text, TextBox2.Text))
  {
    FormsAuthentication.SetAuthCookie(TextBox1.Text.Trim(), false);
    //---    
  }else{//---}