crypt
    c = crypt( input ,hash(hash(publickey) + privatekey) )
decrypt
    d = decrypt(input,hash(hash(publickey) + privatekey) )





exẽfBNg
    webAvP[V (̎spXł͂ȂAwebAvP[VƂẴpXKv̂͂)
            Server.MapPath("~/")
            Environment.CurrentDirectory;
            AppDomain.CurrentDomain.BaseDirectory;
    clickonce
            Environment.CurrentDirectory;
            AppDomain.CurrentDomain.BaseDirectory;
            System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName)
    smart client
            System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName)

f[^fBNg
    webAvP[V (̎spXł͂ȂAwebAvP[VƂẴpXKv̂͂)
        AppDomain.CurrentDomain.GetData("DataDirectory"); // (root)/App_DataԂĂ͂
    clickonce
        AppDomain.CurrentDomain.GetData("DataDirectory"); // 
    smart client
        ȂHgȂ番Xg[WH


resource(text)
E\[Xt@C̃\[X
Eresgen.exeʂ.resources
smart clientł͎gȂBdllɂ邵Ȃ



app.config
<configuration>
    <appSettings>
        <add key="ConfigDirectory" value="c:\temp\config" />
        <add key="ConfigLoader" value="default" />
    </appSettings>
    <connections>
        <connection name="default" class="CFW.Databas.SqlServer.SqlServerConnection" />
        <connection name="pm" class="CFW.Databas.SqlServer.SqlServerConnection" />
        <conneciton name="pm/draft" class="CFW.Databas.SqlServer.SqlServerConnection" />
        
    </connections>
    
</configuration>


<configuration>
    <connections>
        <connection name="default" class="CFW.Databas.SqlServer.SqlServerConnection" />
        <connection name="pm" class="CFW.Databas.SqlServer.SqlServerConnection" />
        <conneciton name="pm/draft" class="CFW.Databas.SqlServer.SqlServerConnection" />
        
    </connections>
    <auth>
    </auth>
    <acl>
    </acl>
    <logs>
    </logs>
</configuration>







<configInclude path="c:\web\config\debug">
	<include name="connections" file="connections.config"  key="open sesami" />
	<include name="auth" file="auth.config" key="open sesami" />
	<include name="acl" file="acl.config" key="open sesami" />
	<include name="log" file="log.config" key="open sesami" />
</configInclude>


<appSettings>
    <add key="configpath" value="c:\web\config\debug">
    <add key="core" value="core.config" />
    <add key="connections" value="connections.config" />
    <add key="auth" value="auth.config" />
    <add key="acl" value="acl.config" />
    <add key="log" value="log.config" />
    <add key="cryptKey" value="opensesami">
</appSettings>


- connections.config -

connections.defaultConnectionTimeout = 15
connections.defaultCommandTimeout =  15

#ݒvf default
connections.default.className = CFW.Database.SqlServer.SqlServerConnection,CFW.Database
connections.default.url = CRAFT-DACSERVER,1433
connections.default.user = okada
connections.default.database = testdb
connections.default.password = okada
connections.default.quoteStyle = 0
connections.default.commandTimeout = 15
connections.default.connectionTimeout = 15
connections.default.option =  

connections.web.className = CFW.Database.DbWebServiceReference,CFW.Database
connections.web.url = http://testservice.example.com/dataservice.asmx
connections.web.user = okada
connections.web.password = okada
connections.web.quoteStyle = 0
connections.web.commandTimeout = 15
connections.web.connectionTimeout = 15
connections.web.option =  

connections.PM.className = CFW.Database.SqlServer.SqlServerConnection,CFW.Database
connections.PM.url = CRAFT-DACSERVER,1433
connections.PM.user = okada
connections.PM.password = okada
connections.PM.quoteStyle = 0
connections.PM.commandTimeout = 15
connections.PM.connectionTimeout = 15
connections.PM.option =  

connections.PM.A110.className = CFW.Database.SqlServer.SqlServerConnection,CFW.Database
connections.PM.A110.url = CRAFT-DACSERVER,1433
connections.PM.A110.user = okada
connections.PM.A110.password = okada
connections.PM.A110.quoteStyle = 0
connections.PM.A110.commandTimeout = 15
connections.PM.A110.connectionTimeout = 15
connections.PM.A110.option =  


#authenticate
authenticate.providerClass = CFW.Auth.NullAuthProvider,CFW
authenticate.storageClass = CFW.Auth.DefaultAuthStorage,CFW
authenticate.hashMethod = MD5
authenticate.sessionName = __AUTH
authenticate.salt = __AUTH


#log
log.default.writerClass = CFW.Log.DefaultLogWriter,CFW
log.default.parameter = default
log.default.logLevel = ALL


Configuration connectionConfig = ConfigurationFactory.Get("connections");
Configuration defaultConnectionConfig = (Configuration)connectionConfig.GetSection("default");
string url =  defaultConnectionConfig.GetString("url");





static final string pkey = "moyomoyo";

Get(string name){
	string filename = GetSection("include")[name]["file"];
	string key = GetSection("include")[name][key];
	string contents = File.ReadAll(filename);
	string decrypt = Decrypt(contents, MD5( key + pkey)); // "opensesamimoyomoyo" ŊJ/{
	
	Config conf = LoadFromString(name,decrypt);
	ConfigRegistry[name] = conf;
	return conf;
}
LoadFromString(name,contents){
	Config c = new Config();
	StringReader reader = new StringReader(contents);
	while(!reader.EOF){
		string s =reader.ReadLine();
		string[] key = s.key.split(".");
		string value = s.value;
		
		for(int i= 0;i < key.length - 1;i++){ //Ō͒lvf
			
		}
		
	}
}



dataAccess/
	default/
		url
		user
		password
		commandTimeout
	web/



DataDirectory