1、<authentication>
特性 | 说明 | ||||||||||
mode | 必需的特性。 指定应用程序的默认身份验证模式。 此特性可以为下列值之一。
默认值为 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”。 |
Integrated Security | SqlConnectionStringBuilder 的 IntegratedSecurity 属性,对应 connectionString 中的I ntegrated Security,“Integrated Security”可以写成“trusted_connection”。 SSPI:Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。 |
AttachDBFilename | SqlConnectionStringBuilder 的 AttachDBFilename 属性,对应 connectionString 中的 AttachDBFilename,“AttachDBFilename”可以写成“extended properties”,“initial file name”。 |
User Instance | SqlConnectionStringBuilder 的 UserInstance 属性,对应 connectionString 中的 User Instance ,该值指示是否将连接从默认的 SQL Server 实例重定向到在调用方帐户之下运行并且在运行时启动的实例。 |
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 |
| ||||||||
defaultRedirect
| 用于指定网页出错时,浏览器定向到的默认url地址,如果未指定该属性,则显示一般性错误。 |
这里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时成为本地用户,反之则称之为远程用户。
在开发调试阶段为了便于查找错误Mode属性建议设置为Off,而在部署阶段应将Mode属性设置为On或者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。
5、<httpRuntime>节
<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 |
| ||||||||||
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秒钟。
|