应用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{//---}