Machine.config
1.该文件在Windows目录下\Microsoft.net\framework\[version]\Config\
2.为了提高性能,该文件只包含不同于默认值的设置。并且定义了配置文件项可包含的配置节,就像是一个基础的定义。可以使用System.Configuration命名空间中的类读取配置文件
3.Configuration元素的主要子元素
appSettiongs:包含自定义的应用程序设置
configSections:申明自定义设置的配置节。如果该元素存在,必须是configuration节点的第一个子节点。它可以直接包含sectionGroup和section子节。sectionGroup用于标记和组织几个子节,

通常表示要应用配置设置的命名空间。name属性表示正在声明的节名称,type属性指示从配置文件读取该节内容并对它进行解析的托管类的名称,值是一个逗号隔开id字符串,包括类和包含它的程序集的全名。还有三个专用元素 add,remove,clear(清除以前的设置,即不继承)

connectionStrings:列出对应用程序有用的预定义的连接字符串
configProtectedData:包含已被加密的配置节的加密数据
runtime:运行时设置架构,描述那些配置程序集绑定和运行时行为的元素,比如               probing和assembly redirect
startup:启动设置架构,包含那些规定必须使用哪个版本的公共语言运行库的元素
system.diagnostics:描述那些规定跟踪开关和监听器(收集、存储和传递消息)的元素
system.net:网络架构,规定那些指示.net framework如何连接到Internet的元素,包括默认的代理、身份验证模块和连接参数
system.runtime.remoting:设置架构,配置利用.net remoting的客户端和服务端应用程序
system.web:包含那些控制asp.net应用程序的各方面行为的元素

4.system.web元素的主要子元素
anonymousIdentification:配置未经身份验证的用户的标识,只可在机器级和应用程序级重写
authentication:设置身份验证机制,只可在机器级和应用程序级重写
authorization:指示已授权的用户
browserCaps:列出已知的浏览器能力
clientTarget:列出已预定义的客户目标
compilation:批编译的设置
customErrors:自定义的错误页面设置,只能在Machine.config或一级web.config文件中设置,不能多重继承
deployment:指示如何部署应用程序
deviceFilters:列出已知的移动浏览器能力
globalization:用于应用程序本地化设置
healthMonitoring:配置一个用于运行状况监视的应用程序,只可在机器级和应用程序级重写
hostingEnvironment:定义控制应用程序承载环境的行为的配置,只可在机器级和应用程序级重写
httpCookies:配置cookie的属性
httpHandlers:列出已注册的http处理程序
httpModules:列出已注册的http模块
httpRuntime:列出http运行库设置
identity:设置个性化
machineKey:敏感数据的加密密钥
membership:通过asp.net成员资格定义用户身份验证,只可在机器级和应用程序级重写

 <membership
defaultProvider="MyMemberShip"//可选属性,默认为AspNetSqlProfileProvider
userlsOnlineTimeWindow="number of minutes" //可选属性,指定账户的上次活动时间戳之后的分钟数,在这段时间 内,该用户被视为处于联机状态,默认是15分钟
hashAlgorithmType="SHA1"> //可选属性,指定对密码值的加密算法,该值对应于cryptoNameMapping节中nameEntry元素的 name属性。默认为SHA1.
<providers>
<add name="MyMemberShip" type="MyMemberShip" requiresQuestionAndAnswer="true" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=....">
</providers>
</membership>

membership 节点

 // 必须实现MembershipProvider虚拟类的所有成员方法
public class MymemberShip : MembershipProvider
{
private string appName = "TestMembershipProvider";
//设置密码问题
private bool _requiresQuestionAndAnswer;
//最小密码长度
private int _minRequiredPasswordLength;
public MymemberShip()
{ //构造函数逻辑
}
string connectionString = "...";
public override string ApplicationName
{
get
{ return appName; }
set
{ appName=..; }
} //验证用户
public override bool ValidateUser(string username, string password)
{
using (OleDbConnection conn=new OleDbConnection(connectionstring))
{
OleDbCommand comm = new OleDbCommand();
comm.CommandText = "select count(0) from users where u_name=@name and u_pwd=@pwd";
comm.Parameters.AddWithValue("@name",username);
comm.Parameters.AddWithValue("@pwd", password);
comm.Connection = conn;
conn.Open();
return ((int)comm.ExecuteScalar())>?true:false; }
}
//修改密码
public override bool ChangePassword(string username, string oldPassword, string newPassword)
{
using (OleDbConnection conn=new OleDbConnection(connectionString))
{
OleDbCommand comm = new OleDbCommand();
//最后改成参数化,以防Sql注入
comm.CommandText = "update users set u_pwd='" + newPassword +
"'where u_name='" + username + "'and u_pwd='" + oldPassword +
"'";
comm.Connection = conn;
if (conn.State==ConnectionState.Closed)
{ } };
}
}

代码

mobileControls:列出web控件的设备特有的类适配器
pages:页面的控件特性
processModel:配置进程模型
profile:定义用户配置文件数据模型的设置,只可在机器级和应用程序级重写

 <profile
enabled="true" 是否启用profile
inherits="fully qualified type reference"包含从ProfileBase抽象类派生的自定义类型的类型引用
automaticSaveEnabled="true"指定页面执行完自动保存profile
defaultProvider="SqlProfileProvider">配置文件提供程序名默认为AspNetSqlProfileProvider
<properties>必选元素,定义profile属性和属性组集合.</properties>
<add name="Name" serializeAs="Xml"/>//在程序中对属性赋值,就会自动记录到数据库
<add name="Pwd" serializeAs="Xml"/>
<providers>可选元素,定义配置文件提供程序的集合.
<add name="SqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="SqlConnectionString" applicationName="/" />
</providers>
</profile>

profile 节点

protocols:规定asp.net web服务能使用的协议,只可在机器级和应用程序级重写
roleManager:定义角色管理的设置,只可在机器级和应用程序级重写

<roleManager cacheRoleslnCookie="true|false"
cookieName="name" cookiePath="/"
cookieProtection="All|Encryption|Validation|None
cookieRequireSSL="true|false"
cookieSlidingExpiration="true|false"
cookieTimeout="number of minutes"
createPersistentCookie="true|false"
defaultProvider="provider name"
domain="cookie domain"
enabled="true|false"
maxCachedResults="maximum number of role names cached">
<provider></provider>
</rolemanager> //location节点设置用户角色访问权限,对应的API类是ConfigurationLocation,可通过此类读取配置信息
<location path="admin.aspx">
<system.web>
<authorization>
<allow roles="admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="guest.aspx">
<system.web>
<authorization>
<allow roles="guest"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="changePassword.aspx">
<system.web>
<authorization>
<deny users="?"/>//拒绝匿名用户
</authorization>
</system.web>
</location>

role manager 节点

securityPolicy:定义允许的信任级别,只可在机器级和应用程序级重写
sessionState:配置Session对象,只可在机器级和应用程序级重写
siteMap:定义用来支持导航基础结构的设置,只可在机器级和应用程序级重写
trace:配置跟踪系统
trust:定义默认的信用级别,只可在机器级和应用程序级重写
webControls:定位客户端脚本
webParts:定义Web Parts的设置
webServices:配置Web服务
xhtmlConformance:定义xhtml一致性的设置

Web.Config
1.必须包含在<Configuration></Configuration>标记对中。
此文件包括2部分,第一部分是模块处理方式声明,包含在<Configsections></Configsections>标
记对中;第二部分才是真正的设置内容:
<configuration>
  <configSections>
    <section name="appSettings" type="System.Web.Configuration.NameValueSectionHandler"/>
    <section name="sessionState" type="System.Web.Configuration.SessionStateConfigHandler"/>
  </configSections>
  <appSettings>
    <add key="key" value="value"/>
  </appSettings>
</configuragion>

2.应用程序专用设置

<?xml version="1.0"?>
<configuration >
<configSections>
<section name="database" type="System.Web.Configuration.DictionarySectionHandler"/>
</configSections>
<database>
<add key="edu" value="server=.;uid=sa;pwd='';database='edu'"/>
</database>
</configuration>

在程序中取出配置值的语句是:Context.GetConfig("key")("value")

3.中文显示,如果要求整个站点都显示中文,则将Web.Config文件放在根目录下
  <system.web>
    <globalization requestEncoding ="UTF-8" responseEncoding ="UTF-8"/>
  </system.web>

4.Session超时设置,注意该设置只能在根目录即全局中定义
 <system.web>
    <sessionState cookieless ="false" timeout ="30"/>
  </system.web>

5.authentication节:Forms,Windows,Passport,None
loginUrl
验证失败时重定向到的Url,如果重定向到其他机器,两台机器的decryptionKey属性必须相同;name指定用于验证的cookie名
称;timeout指定cookie超时分钟数,缺省是30。由于cookie在超时时间过一半时可能被刷新(根据浏览器的设置),所以timeout不
一定准确;path指定cookie路径;protection指定对cookie保护类型。
authentication节中可包含一个credentials节,该节可输入用户名和密码信息。
6.authorization节,通过allow节和deny节来控制用户权限
7.customErrors节来控制错误信息怎么显示
8.httpHandlers节规定应用程序使用哪些http处理器;httpModules节
9.identity节控制应用程序的身份标识
10.pages节包含页面专有的信息
11.processModel节控制IIS进程模式设置
12.sessionState节控制怎样管理会话状态
13.trace节设置跟踪服务,可在代码中使用Trace类的Write()方法在跟踪输出中添加自定义的信息。

对配置文件的操作:
1.对web.config里的连接字符串加密解密
使用命令行工具aspnet_regiis

//获取当前登录用户
currentUser=System.Security.Principal.WindowsIdentity.GetCurrent().Name//name是需要加密
string name=@"connectionStrings";
string appPath="/testconfiguration";
//打开Web.config文件
Configuration config=WebConfigurationManager.OpenWebConfiguration (appPath);
//提供加密的方法
string provider="RsaProtectedConfigurationProvider";
//Rsa加密方法需要打开加密容器,语法是aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\Network service(也可以是currentUser)"
//设置加密节点
config.GetSection(name).SectionInformation.ProtectSection(provider);
//解密
//config.GetSection(name).SectionInformation.UnProtectSection();
//保存文件
config.Save();
2,添加节点
string name=@"system.web/httpHandlers";
//指定虚拟路径
string appPath="/testconfiguration";
//打开Web.config文件
Configuration config=WebConfigurationManager.OpenWebConfiguration (appPath);
//获取system.web/httpHandlers配置节
HttpHandlersSection section=(HttpHandlersSection)config.GetSection(name);
//定义子节点
HttpHandlersAction newHandle=new HttpHandlerAction("*.aaa","System.Web.HttpForbiddenHandler","*");
//添加子节点
section.Handlers.Add(newHandle);
//移除子节点section.Handlers.Remove("*","*.aaa");
config.Save();

配置文件(Machine.config、Web.config、App.config)的更多相关文章

  1. 项目文件中含有两个config文件,app.config与app1.config,如何获取app1.config中的配置

    想要通过配置文件配置C#前台画面,好奇做了以下测试:在项目中新建了app.config与app1.config两个配置文件,请教一下各位高手如果想从app1.config中读取配置信息应该如何读取?采 ...

  2. C#的配置文件App.config使用总结

    应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是configuration. ...

  3. App.config使用ASP.NET Web Project的Transformation

    1.创建对应configuration的App.config文件,比如:App.Debug.config.App.Release.config. 2.编辑项目文件,将App.*.config文件的Bu ...

  4. App.Config详解

    App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是c ...

  5. ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开

    ASP.NET MVC Filters 4种默认过滤器的使用[附示例]   过滤器(Filters)的出现使得我们可以在ASP.NET MVC程序里更好的控制浏览器请求过来的URL,不是每个请求都会响 ...

  6. App.Config详解及读写操作

    App.Config详解及读写操作   App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而 ...

  7. winform app.config文件的动态配置

    获取 获取应用程序exe.config文件中  节点value值 /// <summary> /// 功能: 读取应用程序exe.config文件中 /// appSettings节点下 ...

  8. c# App.Config详解

    c# App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序. 配置文件的根 ...

  9. app.config *.exe.config 和*.vshost.exe.config基础学习

    一.问题描述 在使用config文件来保存一些参数,便于下次启动程序时自动加载上次设置的参数的功能时, 碰到个问题,vs2010下调试运行程序始终无法实现config记录上次参数值,而直接运行exe程 ...

  10. [转载]App.Config详解及读写操作

    App.Config详解 应用程序配置文件是标准的 XML 文件,XML 标记和属性是区分大小写的.它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序.配置文件的根节点是c ...

随机推荐

  1. SQL Server 镜像证书过期处理

    转自:https://www.cnblogs.com/trams/archive/2012/01/13/2321637.html SQL Server 镜像证书过期处理 今天镜像中的主服务器进行维护重 ...

  2. python startswith() 函数

    startswith() 作用:判断字符串是否以指定字符或子字符串开头 >>> s = "my name is ming" >>> >&g ...

  3. 从xtraback 备份文件中 单独恢复一张 innodb 表

    从xtraback 备份文件中 单独恢复一张 innodb 表 http://blog.sina.com.cn/s/blog_445e807b0101dbgw.html 能够恢复一张表的前提是独立表空 ...

  4. 1.如何修改oracle的密码

    在下图中的目录下面找到 PWDorcl.ora 文件,orcl是数据库的实例名  备份,将PWDorcl.ora 文件名称改为 PWDorcl_back.ora 以管理员身份打开cmd,执行 orap ...

  5. PAT 1015 Reversible Primes[求d进制下的逆][简单]

    1015 Reversible Primes (20)(20 分)提问 A reversible prime in any number system is a prime whose "r ...

  6. 8款世界级Webmail工具推荐

    Webmail软件或者基于Web的电子邮件包含两个重要方面:Webmail客户端和Webmail提供商.Webmail客户端负责通过本地或远程服务器使用POP3和SMTP协议发送和接收电子邮件.Web ...

  7. Android弹性滑动的三种实现方式

    引言 上一篇文章我们介绍了实现弹性滑动的三种方式,但仅仅是给出了代码片段和方法理论.今天我们结合一个具体的例子来谈一下如何使用这三种方法来实现弹性滑动.今天我们的例子是仿IOS的下拉操作,我们知道An ...

  8. linux 引导流程二

    grep -v  “^#” /etc/inittab | more 提取etc文件中的有效行. 用命令man 可以获得配置文件和命令的帮助信息.配置文件必须是系统的配置文件或系统默认安装的某个服务的配 ...

  9. 关于DOM2级事件的事件捕获和事件冒泡

    DOM2级事件中addEventListener的执行机制,多个addEventListener同时添加时的执行先后规律: W3C的DOM事件触发分为三个阶段:①.事件捕获阶段,即由最顶层元素(一般是 ...

  10. PKU2503_map应用

    Description You have just moved from Waterloo to a big city. The people here speak an incomprehensib ...