asp.net - how to Read Ihttpmodule from web.config system.web and system.webServer -
web.config looks like:
<system.web> <httpmodules> <add name="dotnetcasclient" type="dotnetcasclient.casauthenticationmodule,dotnetcasclient"/> </httpmodules> </system.web> <system.webserver> <modules> <remove name="dotnetcasclient"/> <add name="dotnetcasclient" type="dotnetcasclient.casauthenticationmodule,dotnetcasclient"/> </modules> </system.webserver>
in c# code:
[assembly: preapplicationstartmethod(typeof(casclientstart), "start")] namespace dev.casclient { public static class casclientstart { /// <summary> /// starts application /// </summary> public static void start() { if( !..... registered (dotnetcasclient) in web.config) dynamicmoduleutility.registermodule(typeof(dotnetcasclient)); } } }
how read httpmodule web.config ? before dynamic register module,i want check web.confg @ first.
my solution,
// final solution public static void start() { var iwantreg = typeof(casclientmodule).fullname; var configuration = webconfigurationmanager.openwebconfiguration("~"); if (httpruntime.usingintegratedpipeline) { var websermodules = configuration.getsection("system.webserver"); var xml = websermodules.sectioninformation.getrawxml(); xdocument xmlfile = xdocument.load(new stringreader(xml)); ienumerable<xelement> query = c in xmlfile.descendants("modules").descendants("add") select c; foreach (xelement band in query) { var attr = band.attribute("type"); var strtype = attr.value.split(',').first(); if (strtype.tolower() == iwantreg.tolower()) return; } } else { object o = configuration.getsection("system.web/httpmodules"); httpmodulessection section = o httpmodulessection; var models = section.modules; foreach (httpmoduleaction model in models) { if (model.type.split(',').first() == iwantreg) return; } } dynamicmoduleutility.registermodule(typeof(casclientmodule)); }
终于解决了这个问题,分别通过集成与经典格式两种方式。 感谢朋友们的帮助。
would work you? (untested)
configuration configuration = webconfigurationmanager.openwebconfiguration("~"); object o = configuration.getsection("system.web/httpmodules"); httpmodulessection section = o httpmodulessection; var kvp = section.currentconfiguration.appsettings.settings["name"];
Comments
Post a Comment