• 学习:Web.config详解


     

     

     

    <?xml version="1.0" encoding="utf-8" ?>

    <configuration> 所有.NET配置文件所必须的根元素

       

     <system.web> 实际ASP.NET配置设置的根元素

     

        <!-- 动态调试编译

              设置compilation debug="true" 以启用ASPX 调试。否则,将此值设置为

              false 将提高此应用程序的运行时性能。

              设置compilation debug="true" 以将调试符号(.pdb 信息)插入到编译页中。

    因为这将创建执行起来较慢的大文件,所以应该只在调试时将此值设置为true,而在所有其他时候都设置为false。有关更多信息,请参考有关调试ASP.NET 文件的文档。

    defaultLanguage="c#" 指定动态编译时使用的默认编程语言,它的值可以是compilers标记定义的任何语言。

    tempDirectory 指编译过程中存储文件的目录

        -->

        <compilation

             defaultLanguage="c#" 

             debug="true"

    />

     

        <!-- 自定义错误信息

              设置customErrors mode="On" 或"RemoteOnly" 以启用自定义错误信息,或设置为"Off" 以禁用自定义错误信息。

              为每个要处理的错误添加<error> 标记。

              "On" 始终显示自定义(友好的)信息。如果没有提供defaultRedirect属性,则用户将看到一般的错误信息.

              "Off" 始终显示详细的ASP.NET 错误信息。显示全部的错误细节

              "RemoteOnly" 只对不在本地Web 服务器上运行的用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便不向远程客户端显示应用程序的详细信息。

        -->

        <customErrors

        mode="RemoteOnly"

    />

    使用customErrors 元素,可以配置应用程序响应各种HTTP错误时的行为。例如,通过如下代码,当发生错误时,就可以把页面重新导向一个友好的页面。

    <customErrors defaultRedirect=”standarderror.aspx” mode="remoteonly">

    <error statuscode=”” redirect=”filenotfound.htm”/>

    </customErrors>

    当发生HTTP错误时,上面的代码将把用户导向standarderror.aspx页面。如果错误是代码(即没有发现文件),将把用户导向filenotfound.htm。但是,由于模式设置为remoteonly,所有本地的管理员将会看到真实的错误信息,而不是被导向其它的页面,但远程的客户将会看到自定义的错误页面。

     

        <!-- 身份验证

              此节设置应用程序的身份验证策略。可能的模式是"Windows"、

              "Forms"、"Passport" 和"None"

     

              "None" 不执行身份验证。

              "Windows" IIS 根据应用程序的设置执行身份验证包含全部的IIS身份验证,此外,NTFS在文件和目录上的权限将决定对目录中资源的访问。

                (基本、简要或集成Windows)。在IIS 中必须禁用匿名访问。

              "Forms" 您为用户提供一个输入凭据的自定义窗体(Web 页),然后

               在您的应用程序中验证他们的身份。用户凭据标记存储在Cookie 中。

               使用cookies去指出授权用户。

              "Passport" 身份验证是通过Microsoft 的集中身份验证服务执行的,

               它为成员站点提供单独登录和核心配置文件服务。

        -->

        <authentication mode="Windows" />

    下面是使用Passport的身份验证的示例。在这个对目录进行配置的示例中,如果用户没有提供有效的Passport,则把用户导向login.aspx页面。

    <authentication mode=”Passport”>

    <passport redirectUrl=”login.aspx”/>

    </authentication>

    下面的示例阐明了怎样使用基于窗体的身份验证,以及怎样把有效的用户名和密码保存在配置文件中:

    <authentication mode=”Forms”>

    <Forms name=”SecureApplication”

    loginUrl=”/secureapplication/custlogin.aspx/”>

    <credentials passwordFormat=”Clear”>

    <user name=”admin” password=”admin”/>

    </credentials>

    </forms>

    </authentication>

     

        <!-- 授权

               此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问

              应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名

              (未经身份验证的)用户。

        -->

     

        <authorization>

            <allow users="*" /> <!-- 允许所有用户-->

                <!-- <allow     users="[逗号分隔的用户列表]"

                                        roles="[逗号分隔的角色列表]"/>

                         <deny     users="[逗号分隔的用户列表]"

                                        roles="[逗号分隔的角色列表]"/>

                -->

        </authorization>

     

        <!-- 应用程序级别跟踪记录

              应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。

              设置trace enabled="true" 可以启用应用程序跟踪记录。如果pageOutput="true",则

              在每一页的底部显示跟踪信息。否则,可以通过浏览Web 应用程序

               根目录中的"trace.axd" 页来查看

              应用程序跟踪日志。

        -->

        <trace

            enabled="false"

            requestLimit="10"

            pageOutput="false"

            traceMode="SortByTime"

            localOnly="true"

        />

    默认状态下,trace元素处于激活状态,但是它的输出没有显示给Web页面。在trace元素中也可以定义侦听器,侦听器其实是一些对象,使用那些对象,可以收听、收集和发送各种消息。下面代码中定义的侦听器可以把跟踪信息写到日志文件(即文本文件中):

    <trace enabled="true" requestLimit=”” pageOutput=”false”>

    <listeners>

    <add name=”TraceListener”

         type=”System.Diagnostics.TextWriterTraceListener,System”

         initializeData=”TraceListener.log”/>

    </listeners>

    </trace>

     

        <!-- 会话状态设置

              默认情况下,ASP.NET 使用Cookie 来标识哪些请求属于特定的会话。

              如果Cookie 不可用,则可以通过将会话标识符添加到URL 来跟踪会话。

             若要禁用Cookie,请设置sessionState cookieless="true"。

    -->

    默认状态下,ASP.NET通过发送用户cookies(当用户关闭他们的浏览器时,cookies将终止),对会话状态进行维护。

        <sessionState

                mode="InProc" 指ASP.NET会话状态的维护工作是在本地进行的。

                stateConnectionString="tcpip=127.0.0.1:42424"

                sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

                cookieless="false"

                timeout="20"

        />

     

        <!-- 全球化

              此节设置应用程序的全球化设置。

    -->

    Web站点的用户经常要发送和接收文本,这是文本编码格式的配置,默认是rtf-8。

        <globalization

                requestEncoding="GB2312"

                responseEncoding="GB2312"

       />

      

     </system.web>

    AppSettings元素

    <appSettings>元素处于<system.web>根配置之外,它是<configuration>部分的一个子元素。通过简单的指定一对名称/值,就可以添加配置设置。如:

    <appSettings>

    <add key="websitename" value="My New WebSite"/>

    <add key="welcomemessage" value="Welcome to my new Website,friend!"/>

    </appSettings>

    </configuration>

     

    示例:访问<appSettings>元素

    1、按照上面的设置修改Web.config文件

    2、建立网页test1.aspx,加个标签。

    <form id="Form2" method="post" runat="server">

    <FONT face="宋体">

    <P>

    <asp:Label id="lblSiteName" runat="server" Font-Bold="True" Font-Size="Large"></asp:Label></P>

    <P>

    <asp:Label id="lblWelcome" runat="server" ForeColor="Red"></asp:Label></P>

    </FONT>

    </form>

    3、test1.aspx.cs文件

    首先:using System.Configuration;(顶上加句)

    其次:private void Page_Load(object sender, System.EventArgs e)

             {

                  lblSiteName.Text=(string)ConfigurationSettings.AppSettings["websitename"];

                  lblWelcome.Text=(string)ConfigurationSettings.AppSettings["welcomemessage"];

                  // 在此处放置用户代码以初始化页面

             }

     

     

    效果如下:

    My New WebSite

    Welcome to my new Website,friend!

     

     

  • 相关阅读:
    maven工程目录结构&常用命令
    slf4j 与 log4j2 实战讲解与日志分割
    跟着大神学zookeeper分布式锁实现-----来自Ruthless
    redis分布式锁Redisson扩展
    Redis分布式锁---完美实现
    redis异常Redis:java.util.NoSuchElementException: Unable to validate object at
    boot中 Quartz注入spring管理类失败
    转载一篇必须超级好的JVM配置实战
    uoj#422. 【集训队作业2018】小Z的礼物(MIn-Max容斥+插头dp)
    uoj#420. 【集训队作业2018】矩形(组合数学)
  • 原文地址:https://www.cnblogs.com/LeimOO/p/1433109.html
Copyright © 2020-2023  润新知