WebPart使用经验点滴,config配置详解

这几天学习使用WebPart,发现许多题材,使用不难记录如下,同各位共享:
1、WebPart的行使必须依据贰个因此身份验证的用户会话。
二、WebPart的利用的天性化应用于全体人的选项私下认可是禁止使用的,能够因而改动Web.config来成功
<webParts>
   <personalization>
          <authorization>
             <allow users=”*” verbs=”enterSharedScope” />
          </authorization>
      </personalization>
    </webParts>
3、WebPart 默许使用页面包车型大巴 U猎豹CS陆L 存款和储蓄天性化数据.可是不含有
querystrings,以后要贯彻在通用的页面(模版)来落实简单的门户系统,通过不相同的querystrings来读取个人,部门等的多寡。那样个人本身设定的设定能够直接和别人共享。那样的供给在存活的WebPart系统上无法完毕,在WebPart
Components for Asp.net 二.0: Workspace home
URL:http://www.gotdotnet.com/workspaces/workspace.aspx?id=65fa26c3-a62a-49d6-895d-422272e53a0c
有1个这么的WebPart系统能够满意急需。这么些WebPart的撰稿人介绍:http://fredrik.nsquared2.com/viewpost.aspx?PostID=326

一、认识Web.config文件 

 四、启用WebPart得导出成效:修改web.config中WebPart的安装
  <webParts enableExport=”true”>

Web.config   文件是1个XML文本文件,它用来储存   ASP.NET   Web  
应用程序的布置音讯(如最常用的安装ASP.NET   Web  
应用程序的身份验证方式),它能够出现在应用程序的每3个目录中。当您通过.NET新建三个Web应用程序后,暗许情形下会在根目录自动创设1个默许的
 
Web.config文件,包括暗许的布局安装,全部的子目录都三番五次它的布署安装。若是你想修改子目录的配置安装,你能够在该子目录下新建3个 
Web.config文件。它能够提供除从父目录继承的安顿新闻以外的布置消息,也能够重写或修改父目录中定义的装置。

五、导入自定义的webPart 出现谬误:Cannot add a control of Type
DotnetClubPortal.WebControls.WebParts.KugaSSReader. The Type must be
loadable by BuildManager.GetType(string typeName).
拍卖措施:修改web.config文件:
<runtime>
    <assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
      <probing privatePath=”Bin” />
    </assemblyBinding>
 </runtime>
http://msdn2.microsoft.com/en-us/library/e0s9t4ck(en-US,VS.80).aspx

 

(壹).Web.Config是以XML文件规范存款和储蓄,配置文件分为以下格式 

一.配置节处理程序注脚 

特性:   位于配置文件的顶部,包蕴在 <configSections> 标志中。 

二.一定应用程序配置 
特色:   位于 <appSetting> 中。  
能够定义应用程序的全局常量设置等音信. 

3.计划节设置 
特征:   位于 <system.Web> 节中,控制Asp.net运维时的行为. 

4.配置节组 
性情:   用 <sectionGroup> 标记,能够自定义分组,能够放置
<configSections> 内部或其余 <sectionGroup> 标记的当中. 

(二).配置节的每一节 

  1. <configuration> 节 
    根成分,别的节都是在它的中间. 
  1. <appSetting> 节 
    此节用于定义应用程序设置项。对有个别不鲜明设置,还足以让用户依照自个儿实际情状要好安装 
    用法: 
    I. 
    <appSettings> 
    <add   key= “Conntction ”   value=
    “server=192.168.85.66;userid=sa;password=;database=Info; “/> 
    <appSettings> 
    概念了2个连续字符串常量,并且在其实使用时可以修改连接字符串,不用修改程式代码. 
    II. <appSettings> 
    <add   key= “ErrPage ”   value= “Error.aspx “/> 
    <appSettings> 
    概念了一个谬误重定向页面. 
  1. <compilation> 节 
    格式: 
    <compilation 
    defaultLanguage= “c# ” 
    debug= “true ” 
    /> 
    I.default   language:   定义后台代码语言,能够挑选C#和VB.net三种语言. 
    IIdebug   :   为true时,运行aspx调节和测试;  
    为false不运维aspx调节和测试,因此能够增长应用程序运营 
    时的习性。   1般程序员在开发时设置为true,交给客户时设置为false. 
  1. <customErrors> 节 
    格式: 
    <customErrors 
    mode= “RemoteOnly ” 
    defaultRedirect= “error.aspx ” 
    <error   statusCode= “440 ”   redirect= “err440page.aspx “/> 
    <error   statusCode= “500 ”   redirect= “err500Page.aspx “/> 
    /> 
    I.mode   :   具有On,Off,RemoteOnly  
    3种意况。On表示一贯呈现自定义的音讯;  
    Off表示一贯显示详细的asp.net错误音讯;  
    RemoteOnly表示只对不在本地Web服务器上运转的用户体现自定义信息. 
    II.defaultRedirect:   用于现身错误时重定向的U大切诺基L地址.   是可选的 
    III.statusCode:   指明错误状态码,表雀巢种特定的出错状态. 
    IV.   redirect:错误重定向的U奥迪Q5L. 
  1. <globalization> 节 
    格式: 
    <globalization 
    requestEncoding= “utf-8 ” 
    responseEncoding= “utf-8 ” 
    fileEncoding= “utf-8 ” 
    /> 
    I.requestEncoding:   它用来检查每二个发来呼吁的编码. 
    II.responseEncoding:   用于检查发回的响应内容编码. 
    III.fileEncoding:   用于检查aspx,asax等公事分析的暗许编码. 
  1. <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 ” 
    /> 
    I.mode:   分为off,Inproc,StateServer,SqlServer三种情景 
    那边有详实介绍此属性:  
    http://blog.csdn.net/chengking/archive/2005/10/27/518079.aspx 
    II.   stateConnectionString  
    :钦点Asp.net应用程序存储远程会话状态的劳动器名,暗中认可为本机 
    III.sqlConnectionString:   当用会话状态数据库时,在此间设置连接字符串 
    IV.   Cookieless:   设置为true时,表示不使用cookie会话状态来标识客户;  
    不然,相反. 
    V.   TimeOut:   用来定义会话状态存款和储蓄的时刻,超越限期,将电动终止会话. 
  1. <authentication> 节 
    格式: 
    <authentication   mode= “Forms “> 
    <forms   name= “.ASPXUSERDEMO ”   loginUrl= “Login.aspx ”  
    protection= “All ”   timeout= “30 “/> 
    </authentication> 
    <authorization> 
    <deny   users= “? “/> 
    </authorization> 
    I.Windows:   使用IIS验证情势 
    II.Forms:   使用基于窗体的验证措施 
    III.Passport:   选拔Passport   cookie验证方式 
    IV.None:   不利用其余注解方式 
    内部内嵌Forms节点的天性涵义: 
    I.Name:   内定完结身份验证的Http   cookie的名称. 
    II.LoginUrl:  
    要是未通过验证或逾期后重定向的页面ULX570L,1般为记名页面,让用户重新登录 
    III.Protection:   内定   cookie数据的护卫形式. 
    可安装为:   All   None   Encryption   Validation各类爱惜情势 
    a.   All表示加密数据,并拓展实用验证三种方法 
    b.   None表示不保险Cookie. 
    c.   Encryption表示对Cookie内容实行加密 
    d.   validation表示对Cookie内容举办中用验证 
    IV.   TimeOut:   钦定Cookie的失效时间.   超时后要重复登录. 

在运维时对Web.config文件的修改不需求重启服务就足以生效(注:
<processModel>  
节例外)。当然Web.config文件是能够扩充的。你能够自定义新安顿参数并编写制定配置节处理程序以对它们进行拍卖。 

web.config配置文件(暗中认可的布置安装)以下有所的代码都应该放在 
<configuration> 
<system.web> 
lovebet,和 
</system.web> 
</configuration> 
里面,出于学习的目标上边包车型客车言传身教都简单了这段XML标记。 

1、 <authentication>   节 
效益:配置   ASP.NET  
身份验证协助(为Windows、Forms、PassPort、None多种)。该因素只辛亏总计机、站点或应用程序级别注解。
<   authentication>   成分必需与 <authorization>  
节协作使用。 

示例: 

以下示例为遵照窗体(Forms)的身份验证配置站点,当未有登陆的用户访问须要身份验证的网页,网页自动跳转到登陆网页。 
<authentication   mode= “Forms ”   > 
<forms   loginUrl= “logon.aspx ”   name= “.FormsAuthCookie “/> 
</authentication> 
个申月素loginUrl表示登陆网页的名号,name表示Cookie名称。 

2、 <authorization>   节 
功效:控制对   U奇骏L  
资源的客户端访问(如允许匿名用户访问)。此成分能够在别的级别(总计机、站点、应用程序、子目录或页)上宣称。必需与
<authentication>   节同盟使用。 

示范:以下示例禁止匿名用户的拜访 
<authorization> 
      <deny   users= “? “/> 
</authorization> 
注:你能够使用user.identity.name来获得已经过认证的此时此刻的用户名;能够利用web.Security.FormsAuthentication.RedirectFromLoginPage方法将已评释的用户重定向到用户方才请求的页面.具体的 

3、 <compilation> 节 
成效:配置   ASP.NET  
使用的拥有编写翻译设置。暗许的debug属性为“True”.在先后编写翻译实现交付使用之后应将其设为False(Web.config文件中有详实说明,此处省略示例) 

4、 <customErrors> 
效益:为   ASP.NET   应用程序提供关于自定义错误消息的音信。它不适用于  
XML   Web   services   中生出的不当。 

以身作则:当产生错误时,将网页跳转到自定义的荒谬页面。 
<customErrors   defaultRedirect= “ErrorPage.aspx ”   mode=
“RemoteOnly “> 
</customErrors> 
中间成分defaultRedirect表示自定义的不当网页的称号。mode元素表示:对不在本地  Web   服务器上运转的用户展现自定义(友好的)音讯。 

5、 <httpRuntime> 节 
效能:配置   ASP.NET   HTTP  
运转库设置。该节能够在电脑、站点、应用程序和子目录级别表明。 

示范:控制用户上传文件最大为四M,最长日子为60秒,最多请求数为100 
<httpRuntime   maxRequestLength= “4096 ”   executionTimeout= “60 ”  
appRequestQueueLimit= “100 “/> 

ConfigurationSettings.AppSettings[ “scon “]

实例代码:

lovebet 1lovebet 2

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

<configuration>


    <configSections>
      <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
        <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
          <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
            <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
            <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
            <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
            <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
          </sectionGroup>
        </sectionGroup>
      </sectionGroup>
      <section name="beitmemcached" type="System.Configuration.NameValueSectionHandler"/>
    </configSections>

  <beitmemcached>
    <add key="UserCache" value="127.0.0.1:11211"/>
  </beitmemcached>
  <appSettings>
    <!--Memcache缓存时间,单位:分-->
    <add key="UserCacheTime" value="2"/>
    <!--官网地址-->
    <add key="WebSiteUrl" value="http://service.70yx.com"/>
    <!-- 注册页 -->
    <add key="RegisterPage" value="http://reg.70yx.com/register.aspx"/>
    <!-- 登录页 -->
    <add key="LoginPage" value="http://reg.70yx.com/Login.aspx"/>
    <!--退出登录页-->
    <add key="LogoutPage" value="http://reg.70yx.com/logout.aspx"/>
    <!--提示页-->
    <add key="MsgPage" value="/msg.aspx"/>
    <!-- 统计当前时间的前多少天的问题,默认为30-->
    <add key="ValidateKey" value="wjf)#@^"/>
    <!--验证码存储方式 c:cookie;s:session,m:memcached-->
    <add key="ValidateMethod" value="s"/>
    <!--m-->
    <add key="Days" value="-50"/>
    <add key="count" value="8"/>
    <!-- 受理码默认长度-->
    <add key="MainIdLengh" value="8"/>
    <!--登录cookie名-->
    <add key="LoginCookieName" value="70yxPassportUser,70yxBaiduPassportUser,70yxFunshionPassportUser"/>
    <!--登录cookie过期时间-->
    <add key="CookieExpireTime" value="0"/>
    <!--登录cookie是否写域,1是-->
    <add key="NeedCookieDomain" value="1"/>
    <!-- 用户登录密码加密密钥 -->
    <add key="PwdSecret" value="qck$7@w"/>
    <!--登录认证的连接串名称,权限、用户、角色表所在的数据库,连接串名称在下面;每个用到登录认证的项目必须加这项!-->
    <add key="UserRightConnectName" value="151"/>
    <!--登录私钥-->
    <add key="LoginSecret" value="Ta@x$^s)L"/>
    <add key="DbProvider" value="Qlyx.Broker.SqlDataProvider"/>
    <!--DB是否使用内网连接-->
    <add key="DBIntranet" value="true"/>
    <!--GameDB是否使用内网连接-->
    <add key="GameDBIntranet" value="true"/>
    <!--是否连接电话密保DB-->
    <add key="ConnectPhoneDB" value="false" />
    <!--是否连接密保卡DB-->
    <add key="ConnectSecretCardDB" value="false" />
    <!--是否连接随身密保DB-->
    <add key="ConnectPasspodDB" value="false" />
    <!--后台知识库附件存储的物理路径-->
    <add key="RepositoryAttPath" value="E:\projects\Service.root\Service\Qlyx.Service1.2\FupFiles\"/>
  </appSettings>
  <connectionStrings>
    <add name="jwfConnectionString" connectionString="Data Source=192.168.3.203;Initial Catalog=jwf;User ID=sa;Password=70yxtech20100423;Pooling=true;Connection Reset=true;Connection Lifetime=60;Min Pool Size=;Max Pool Size=100"/>  
  </connectionStrings>

    <system.web>
        <!-- 
            设置 compilation debug="true" 可将调试符号插入
            已编译的页面中。但由于这会 
            影响性能,因此只在开发过程中将此值 
            设置为 true。
        -->
        <compilation debug="true">

          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
          </assemblies>

        </compilation>
        <!--
            通过 <authentication> 节可以配置 ASP.NET 用来 
            识别进入用户的
            安全身份验证模式。 
        -->
        <authentication mode="Windows" />
        <!--
            如果在执行请求的过程中出现未处理的错误,
            则通过 <customErrors> 节可以配置相应的处理步骤。具体说来,
            开发人员通过该节可以配置
            要显示的 html 错误页
            以代替错误堆栈跟踪。

        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm" />
            <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
      <customErrors mode="Off"/>
      <globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
      <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>

      <pages>
        <controls>
          <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </controls>
      </pages>

      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
      </httpHandlers>
      <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </httpModules>

    </system.web>

    <system.codedom>
      <compilers>
        <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                  type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <providerOption name="CompilerVersion" value="v3.5"/>
          <providerOption name="WarnAsError" value="false"/>
        </compiler>
     </compilers>
    </system.codedom>

    <!-- 
        在 Internet 信息服务 7.0 下运行 ASP.NET AJAX 需要 system.webServer
        节。对早期版本的 IIS 来说则不需要此节。
    -->
    <system.webServer>
      <validation validateIntegratedModeConfiguration="false"/>
      <modules>
        <remove name="ScriptModule" />
        <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </modules>
      <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <remove name="ScriptHandlerFactory" />
        <remove name="ScriptHandlerFactoryAppServices" />
        <remove name="ScriptResource" />
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      </handlers>
    </system.webServer>

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>

</configuration>

View Code

1.ConfigurationManager提供对客户端应用程序配置文件的拜会。

其有五个天性一.ConnectionStrings 获得当前应用程序私下认可配置的
ConnectionStringsSection 数据。

方法一:

string myConn
=System.Configuration.ConfigurationManager.ConnectionStrings[“sqlConnectionString”].ConnectionString;

方法二:

string connString
=System.Web.Configuration.WebConfigurationManager.ConnectionStrings[“sqlConnectionString”].ToString();

web.config中的配置为:
<configuration>
<connectionStrings>
    <add name=”sqlConnectionString” connectionString=”LocalSqlServer:
data source=127.0.0.1;Integrated Security=SSPI;Initial
Catalog=aspnetdb”
      providerName=”System.Data.SqlClient” />
</connectionStrings>
</configuration>

 

二.AppSettings 获取当前应用程序暗中认可配置的 AppSettingsSection 数据。

string myConn =
ConfigurationManager.AppSettings[“sqlConnectionString”].ToString();

web.config中的配置为:
<configuration>
<appSettings>
    <add key=”sqlConnectionString” value=”Monday, January 23, 2006
2:56:14 PM” />
</appSettings>
</configuration>

 

转自
 DoubleM