web.config配置(二-1)

作者在 2007-05-17 00:46:00 发布以下内容

<system.web>配置
1、compilation
格式:
<compilation
         defaultLanguage="c#"
         debug="true"
    />
I.default language: 定义后台代码语言,可以选择C#和VB.net两种语言.
II.debug : 为true时,启动aspx调试; 为false不启动aspx调试,因而可以提高应用程序运行
时的性能。 一般程序员在开发时设置为true,交给客户时设置为false.
2、customErrors
格式:
<customErrors
mode="RemoteOnly"
defaultRedirect="error.aspx"
<error statusCode="440" redirect="err440page.aspx"/>
<error statusCode="500" redirect="err500Page.aspx"/>
/>
I.当定义了error后,defaultRedirect可能无法使用。
3、httpRunTime
httpRuntime是配置asp.net http运行时设置,以确定如何处理对asp.net应用程序的请求。
executionTimeout:表示允许执行请求的最大时间限制,单位为秒
maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。
useFullyQualifiedRedirectUrl:表示指示客户端重定向是否是完全限定的(采用 "http://server/path" 格式,这是某些移动控件所必需的),或者指示是否代之以将相对重定向发送到客户端。如果为 True,则所有不是完全限定的重定向都将自动转换为完全限定的格式。false 是默认选项。
minFreeThreads:表示指定允许执行新请求的自由线程的最小数目。ASP.NET 为要求附加线程来完成其处理的请求而使指定数目的线程保持自由状态。默认值为 8。
minLocalRequestFreeThreads:表示ASP.NET 保持的允许执行新本地请求的自由线程的最小数目。该线程数目是为从本地主机传入的请求而保留的,以防某些请求在其处理期间发出对本地主机的子请求。这避免了可能的因递归重新进入 Web 服务器而导致的死锁。
appRequestQueueLimit:表示ASP.NET 将为应用程序排队的请求的最大数目。当没有足够的自由线程来处理请求时,将对请求进行排队。当队列超出了该设置中指定的限制时,将通过“503 - 服务器太忙”错误信息拒绝传入的请求。
enableVersionHeader:表示指定 ASP.NET 是否应输出版本标头。Microsoft Visual Studio 2005 使用该属性来确定当前使用的 ASP.NET 版本。对于生产环境,该属性不是必需的,可以禁用。
4、authentication与authorization(二者配合使用)
(1)authentication格式:<authentication mode=Windows/Forms/None/PassPort>
   <forms name="authWeb"(客户端cookie名称) loginUrl="login.aspx" protection="None/All/Encryption" timeout=30(分钟)path="/"(身份通过验证后可访问的路径) />
      </authentication>
<authorization>
 <deny users="?"(决绝匿名用户,若想拒绝具体用户,可在?后加逗号加上用户名) />
</authorization>
注:将iis中的启用匿名帐户选项去掉。
(2)当在login.aspx页面中验证成功后,有三种方法返回要访问的页面:
 i.Response.Redirect(System.Web.Security.FormsAuthentication.GetRedirectUrl(this.TextBox1.Text,false));
 ii.System.Web.Security.FormsAuthentication.SetAuthCookie(this.TextBox1.Text,false);
    Response.redirect(url);
 iii.System.web.Security.FormsAuthentication.RedirectFromLoginPage(this.TextBox1.Text,false);

(3)如果想删除客户端的cookie:System.web.Security.FormsAuthentication.SignOut();(删除后,若想访问页面,必须经过登录验证)
(4)如果不想把用户名、密码存入数据库(例如:用户很少),可以把用户名和密码放入web.config文件中的<forms>之中。
    格式: <authentication mode="Forms">
   <forms name="authWeb" loginUrl="login.aspx" protection="All">
    <credentials passwordFormat="Clear">
     <user name="a" password="a" />
    </credentials>
   </forms>
      </authentication>
注:1、如果把该用户在授权中拒绝,则该用户即使通过验证,也无法访问网页。
    2、在编写代码时,必须利用setauthcookie方法在客户端建立cookie,若不建立cookie,则认为是匿名访问。(个人理解)
    3、验证的工作:查找客户端的cookie(通过forms标记中的name建立),若找不

ASP.NET | 阅读 3153 次
文章评论,共0条
游客请输入验证码
浏览77895次