web.config主要配置浅析

1、<authentication> 

作用:配置ASP.NET身份验证支持(为Windows、Forms、PassPort、None四种)。该元素只能在计算机、站点 或应用程序级别声明。 元素必需与 节配合使用。
示例:
    
    

特性

说明

mode

必需的特性。

指定应用程序的默认身份验证模式。 此特性可以为下列值之一。

Value

说明

Windows

 Windows 验证指定为默认的身份验证模式。 将它与以下任意形式的 Microsoft Internet 信息服务 (IIS) 身份验证结合起来使用:基本、摘要、集成 Windows 身份验证 (NTLM/Kerberos) 或证书。 在这种情况下,您的应用程序将身份验证责任委托给基础 IIS

Forms

 ASP.NET 基于窗体的身份验证指定为默认身份验证模式。

Passport

 Microsoft Passport Network 身份验证指定为默认身份验证模式。

None

不指定身份验证。 您的应用程序仅期待匿名用户,否则它将提供自己的身份验证。

默认值为 Windows

forms
配置 ASP.NET 应用程序以执行基于窗体的自定义身份验证。
passport
指定要重定向到的页(如果该页要求身份验证,而用户尚未通过 Microsoft Passport Network 身份验证注册)。

  
  
示例:
<authentication mode="Windows">
   <forms 
      name=".ASPXAUTH" 
      loginUrl="login.aspx" 
      defaultUrl="default.aspx" 
      protection="All" 
      timeout="30" 
      path="/" 
      requireSSL="false" 
      slidingExpiration="true" 
      cookieless="UseDeviceProfile" domain="" 
      enableCrossAppRedirects="false">
      <credentials passwordFormat="SHA1" />
   </forms>
   <passport redirectUrl="internal" />
</authentication>

当配置为Forms身份验证时,还需在<authorization/>中添加<deny/>属性 
    <authentication mode="Forms">
          <forms name="myCookie" loginUrl="login.aspx"/>
    </authentication>
    <authorization>
          <deny users="?"/>
    </authorization>

tips:你可以使用user.identity.name来获取已经过验证的当前的用户名;可以使用
web.Security.FormsAuthentication.RedirectFromLoginPage方法将已验证的用户重定向到用户刚才请求的页面.

2、appSettings自定义配置:

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

后台获取时:
 string con_access = ConfigurationManager.AppSettings["accessCon"].ToString();//获取配置文件中的数据库连接字符串
 Response.Write("Aceess数据库连接字符串:"+con_access);//输出获取的数据库字符串信息
 OleDbConnection oCon = new OleDbConnection(ConfigurationManager.AppSettings["accessCon"]);

3、connectionStrings配置

配置示例:
 <connectionStrings>
    <add name="DefaultConnection"
      connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-WebSite2-68f2287a-f2cd-43dd-9349-68326af03ba1;AttachDbFilename=|DataDirectory|\aspnet-WebSite2-68f2287a-f2cd-43dd-9349-68326af03ba1.mdf;Integrated Security=SSPI"
      providerName="System.Data.SqlClient"/>
  </connectionStrings>
    
    

Value

说明

Data Source

SqlConnectionStringBuilder的DataSource属性,对应 connectionString中的Data Source,“Data Source”可以由下列字符串代替:“Server”,“Address”,“Addr”和“Network Address”。
Data Source=.\SQLExpress也可以写成这样Data Source=(local)\SQLExpress。

Integrated Security

SqlConnectionStringBuilder 的 IntegratedSecurity 属性,对应 connectionString 中的I ntegrated Security,“Integrated Security”可以写成“trusted_connection”。
为 True 时,使用当前的 Windows 帐户凭据进行身份验证,为 False 时,需要在连接中指定用户 ID 和密码。可识别的值为 True、False、Yes、No 以及与 True 等效的 SSPI。
如果没有些则必须写上 uid=sa;pwd=123 之类的设置“uid”也可使用“User ID”,“pwd”也可换为“PassWord”。

SSPI:Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。
应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。

AttachDBFilename

SqlConnectionStringBuilder 的 AttachDBFilename 属性,对应 connectionString 中的 AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。
AttachDbFileName 属性指定连接打开的时候动态附加到服务器上的数据库文件的位置。
这个属性可以接受数据库的完整路径和相对路径(例如使用|DataDirectory|语法),在运行时这个路径会被应用程序的 App_Data 目录所代替。

User Instance

SqlConnectionStringBuilder 的 UserInstance 属性,对应 connectionString 中的 User Instance ,该值指示是否将连接从默认的 SQL Server 实例重定向到在调用方帐户之下运行并且在运行时启动的实例。
UserInstance=true 时,SQLServerExpress 为了把数据库附加到新的实例,建立一个新的进程,在打开连接的用户身份下运行。
在 ASP.NET 应用程序中,这个用户是本地的 ASPNET 帐号或默认的 NetworkService,这依赖于操作系统。
为了安全地附加非系统管理员帐号(例如ASP.NET帐号)提供的数据库文件,建立一个独立的 SQLServer 用户实例是必要的。

Initial Catalog 
数据库的名称
providerName 
指定数据库类型:如“System.Data.OracleClient”,该值指定 ASP.NET 在使用此连接字符串进行连接时应使用 ADO.NET System.Data.OracleClient 提供程序。

tips:

connectionString="…… data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User Instance=true"

这里有一个DataDirectory的宏,web根目录一般有一个特殊目录app_data。

DataDirectory是表示数据库路径的替换字符串。由于无需对完整路径进行硬编码,DataDirectory 简化了项目的共享和应用程序的部署。例如,无需使用以下连接字符串:
"Data Source= c:\program files\MyApp\app_data\Mydb.mdf",也可以在其它的文件数据库中使用,如Sqllite。

4、<customErrors>节

<customErrors>节点用于定义一些自定义错误信息的信息。此节点有Mode和defaultRedirect两个属性,其中defaultRedirect属性是一个可选属性,表示应用程序发生错误时重定向到的默认URL,如果没有指定该属性则显示一般性错误。Mode属性是一个必选属性,它有三个可能值,它们所代表的意义分别如下:

<error>子节点

在<customErrors>节点下还包含有<error>子节点,这个节点主要是根据服务器的HTTP错误状态代码而重定向到我们自定义的错误页面,注意要使<error>子节点下的配置生效,必须将<customErrors>节点节点的Mode属性设置为“On”。下面是一个例子:

<customErrors mode="On"defaultRedirect="GenericErrorPage.htm">
    <error statusCode="403" redirect="403.htm" />
    <error statusCode="404" redirect="404.htm" />
</customErrors>

在上面的配置中如果用户访问的页面不存在就会跳转到404.htm页面,如果用户没有权限访问请求的页面则会跳转到403.htm页面,403.htm和404.htm页面都是我们自己添加的页面,我们可以在页面中给出友好的错误提示。

   
   

特性

说明

mode

Value

说明

On

表示在本地和远程用户都会看到自定义错误信息。

Off

禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。

RemoteOnly 

表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息


defaultRedirect
用于指定网页出错时,浏览器定向到的默认url地址,如果未指定该属性,则显示一般性错误。

这里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时成为本地用户,反之则称之为远程用户。

在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。

5、<httpRuntime>节

示例:控制用户上传文件最大为4M,网页超时时间为60秒
<httpRuntime maxRequestLength="4096" executionTimeout="60"/>
后代代码示例
protected void ImgBtnSend_Click(object sender, ImageClickEventArgs e)
    {
        string filepath = FileUp.PostedFile.FileName;
        string filename = filepath.Substring(filepath.LastIndexOf("\\") + 1);
        if (FileUp.PostedFile.ContentLength > 40960)
        {
            LblMessage.Text = "文件大小不能超过网站配置文件中默认的40KB!";
        }
        else
        {
            string serverpath = Server.MapPath("AttachFiles/") + filename;
            FileUp.PostedFile.SaveAs(serverpath);
            LblMessage.Text = "恭喜您!邮件附件上传成功!";
        }
    }

7、<sessionState> 节

作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。
示例:
<   sessionState
  mode="InProc"
  stateConnectionString="tcpip=127.0.0.1:42424"
  sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
  cookieless="false"
  timeout="20"  
/>  
     
     

特性

说明

mode

Value

说明

InProc 

设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。

Off

设置为不使用Session功能

StateServer  

 设置为将Session存储在独立的状态服务中。

SQLServer
设置将Session存储在SQL Server中。


cookieless   

true 使用Cookieless模式

false 使用Cookie模式,这是默认值。

timeout   
设置经过多少分钟后服务器自动放弃Session信息。默认为20分钟
stateConnectionString   
设置将Session信息存储在状态服务中时使用的服务器名称和端口号,例如:"tcpip=127.0.0.1:42424”。当mode的值是 StateServer是,这个属性是必需的。
sqlConnectionString   
设置与SQL Server连接时的连接字符串。例如"data source=localhost;Integrated Security= SSPI;Initial Catalog=northwind"。当mode的值是SQLServer时,这个属性是必需的。
stateNetworkTimeout   
设置当使用StateServer模式存储Session状态时,经过多少秒空闲后,断开Web服务器与存储状态信息的服务器的TCP/IP连接的。默认 值是10秒钟。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值