/* stolen from the 1.0 S.W.Config ModulesConfiguration.cs */
		internal HttpModuleCollection LoadModules (HttpApplication app)
		{
			HttpModuleCollection coll = new HttpModuleCollection ();
			Type type;
			
			foreach (HttpModuleAction item in Modules){
				type = HttpApplication.LoadType (item.Type);
				
				if (type == null) {
					/* XXX should we throw here? */
					continue;
				}
				IHttpModule module = (IHttpModule) Activator.CreateInstance (type,
											     BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
											     null, null, null);
				module.Init (app);
				coll.AddModule (item.Name, module);
			}

			/* XXX the 1.x config stuff does this
			 * indirectly..  I'm not sure we want to do it
			 * here, but this keeps things working in much
			 * the same fashion in 2.0-land. */
			{
				IHttpModule module = new DefaultAuthenticationModule ();
				module.Init (app);
				coll.AddModule ("DefaultAuthentication", module);
			}

			return coll;
		}
		public HttpModuleCollection CreateCollection ()
		{
			HttpModuleCollection items = new HttpModuleCollection ();
			foreach (ModuleItem item in modules)
				items.AddModule (item.ModuleName, item.Create ());

			return items;
		}
        internal HttpModuleCollection CreateModules() {
            HttpModuleCollection modules = new HttpModuleCollection();

            foreach (HttpModuleAction module in Modules) {
                modules.AddModule(module.Entry.ModuleName, module.Entry.Create());
            }

            modules.AddModule("DefaultAuthentication", DefaultAuthenticationModule.CreateDefaultAuthenticationModuleWithAssert());

            return modules;
        }
Пример #4
0
        public static void RegenrateSessionId()
        {
            Authorization.AuthoCookie.RegenerateAuthoCookie();
            SessionIDManager manager = new SessionIDManager();
            string           oldId = manager.GetSessionID(HttpContext.Current);
            string           newId = manager.CreateSessionID(HttpContext.Current);
            bool             isAdd = false, isRedir = false;

            manager.SaveSessionID(HttpContext.Current, newId, out isRedir, out isAdd);
            HttpApplication      ctx  = (HttpApplication)HttpContext.Current.ApplicationInstance;
            HttpModuleCollection mods = ctx.Modules;

            System.Web.SessionState.SessionStateModule ssm = (SessionStateModule)mods.Get("Session");
            System.Reflection.FieldInfo[] fields           = ssm.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
            SessionStateStoreProviderBase store            = null;

            System.Reflection.FieldInfo rqIdField = null, rqLockIdField = null, rqStateNotFoundField = null;
            foreach (System.Reflection.FieldInfo field in fields)
            {
                if (field.Name.Equals("_store"))
                {
                    store = (SessionStateStoreProviderBase)field.GetValue(ssm);
                }
                if (field.Name.Equals("_rqId"))
                {
                    rqIdField = field;
                }
                if (field.Name.Equals("_rqLockId"))
                {
                    rqLockIdField = field;
                }
                if (field.Name.Equals("_rqSessionStateNotFound"))
                {
                    rqStateNotFoundField = field;
                }
            }
            object lockId = rqLockIdField.GetValue(ssm);

            if ((lockId != null) && (oldId != null))
            {
                store.ReleaseItemExclusive(HttpContext.Current, oldId, lockId);
            }
            rqStateNotFoundField.SetValue(ssm, true);
            rqIdField.SetValue(ssm, newId);
        }
Пример #5
0
        public static void InsertRewriteRule(string positionRuleName, string ruleName, RewriteRule rewriteRule)
        {
            if (rewriteRule == null)
            {
                throw new ArgumentNullException("rewriteRule");
            }
            rewriteRule.Name = ruleName;
            HttpModuleCollection modules = System.Web.HttpContext.Current.ApplicationInstance.Modules;

            foreach (string moduleName in modules)
            {
                UrlRewriteModule rewriteModule = modules[moduleName] as UrlRewriteModule;
                if (rewriteModule != null)
                {
                    rewriteModule.InsertRewriteRuleBeforeInternal(positionRuleName, ruleName, rewriteRule);
                }
            }
        }
Пример #6
0
        public static void AddRewriteRule(string ruleName, RewriteRule rewriteRule)
        {
            if (rewriteRule == null)
            {
                throw new ArgumentNullException("rewriteRule");
            }
            rewriteRule.Name = ruleName;
            HttpModuleCollection modules = HttpContext.Current.ApplicationInstance.Modules;

            foreach (string moduleName in modules)
            {
                UrlRewriteModule rewriteModule = modules[moduleName] as UrlRewriteModule;
                if (rewriteModule != null)
                {
                    rewriteModule.AddRewriteRuleInternal(rewriteRule);
                }
            }
        }
 public static void Init(HttpApplication context)
 {
     if ((Interlocked.Exchange(ref _hasBeenInitialized, 1) != 1) && ((DynamicEntries.Count != 0) && (_reflectionUtil != null)))
     {
         IntPtr integratedModeContext = _reflectionUtil.GetIntegratedModeContext();
         if (integratedModeContext != IntPtr.Zero)
         {
             _reflectionUtil.SetModuleConfigInfo(null);
             HttpModuleCollection integratedModuleCollection = _reflectionUtil.GetIntegratedModuleCollection(context, integratedModeContext);
             IList  moduleConfigInfo      = _reflectionUtil.GetModuleConfigInfo();
             string name                  = "__ASP_IntegratedDynamicModule_Shim";
             string assemblyQualifiedName = typeof(IntegratedDynamicModule).AssemblyQualifiedName;
             string condition             = "managedHandler";
             moduleConfigInfo.Insert(0, _reflectionUtil.NewModuleConfigurationInfo(name, assemblyQualifiedName, condition));
             foreach (DynamicModuleRegistryEntry entry in DynamicEntries)
             {
                 moduleConfigInfo.Add(_reflectionUtil.NewModuleConfigurationInfo(entry.Name, entry.Type, "managedHandler"));
             }
             HttpModuleCollection registeredModuleCollection = _reflectionUtil.GetRegisteredModuleCollection(context);
             for (int i = 0; i < integratedModuleCollection.Count; i++)
             {
                 _reflectionUtil.AddModuleToCollection(registeredModuleCollection, integratedModuleCollection.GetKey(i), integratedModuleCollection.Get(i));
             }
             IList moduleList = _reflectionUtil.NewListOfModuleConfigurationInfo();
             for (int j = moduleConfigInfo.Count - DynamicEntries.Count; j < moduleConfigInfo.Count; j++)
             {
                 moduleList.Add(moduleConfigInfo[j]);
             }
             HttpModuleCollection modules3 = _reflectionUtil.BuildIntegratedModuleCollection(context, moduleList);
             for (int k = 0; k < modules3.Count; k++)
             {
                 _reflectionUtil.AddModuleToCollection(registeredModuleCollection, modules3.GetKey(k), modules3.Get(k));
             }
         }
     }
 }
        public void Index()
        {
            //Cписок используемых модулей в своем приложении  -
            //свойство HttpContext.ApplicationInstance.Modules
            //регистрировать новые модули можно в web.config
            //<system.webServer><modules></modules></system.webServer>

            HttpModuleCollection modules = this.HttpContext.ApplicationInstance.Modules;

            string[] keys = modules.AllKeys;

            Response.Write("<h3> Http modules</h3>");

            Response.Write("<ul>");

            foreach (var key in keys)
            {
                Response.Write($"<li>{key}</li>");
            }

            Response.Write("</ul>");

            Response.Write($"<h3> Http handler - {this.HttpContext.Handler}</h3>");
        }
Пример #9
0
        public ActionResult Status()
        {
            StringBuilder result = new StringBuilder();

            result.Append("<br /><b>AuditTrail</b>");
            result.Append("<br />:: IAuditTrailUnitOfWork: " + (DependencyResolver.Current.GetService <IAuditTrailUnitOfWork>()).GetType().ToString());
            result.Append("<br />:: IAuditTrailManager: " + (DependencyResolver.Current.GetService <IAuditTrailManager>()).GetType().ToString());

            result.Append("<br />");
            result.Append("<br /><b>Directory</b>");
            result.Append("<br />:: Configuration: " + DIHelper.EnvironmentManager.ApplicationPath(ConfigurationHelper.AppSettings <string>("EasyLOB.Directory.Configuration")));
            result.Append("<br />:: Export: " + DIHelper.EnvironmentManager.ApplicationPath(ConfigurationHelper.AppSettings <string>("EasyLOB.Directory.Export")));
            result.Append("<br />:: Import: " + DIHelper.EnvironmentManager.ApplicationPath(ConfigurationHelper.AppSettings <string>("EasyLOB.Directory.Import")));
            result.Append("<br />:: Template: " + DIHelper.EnvironmentManager.ApplicationPath(ConfigurationHelper.AppSettings <string>("EasyLOB.Directory.Template")));

            result.Append("<br />");
            result.Append("<br /><b>EDM</b>");
            result.Append("<br />:: IEdmManager: " + (DependencyResolver.Current.GetService <IEdmManager>()).GetType().ToString());
            result.Append("<br />:: Directory: " + ConfigurationHelper.AppSettings <string>("EasyLOB.EDM.FileSystemDirectory"));

            result.Append("<br />");
            result.Append("<br /><b>Log</b>");
            result.Append("<br />:: ILogManager: " + (DependencyResolver.Current.GetService <ILogManager>()).GetType().ToString());

            AppTenant tenant = MultiTenantHelper.Tenant;

            result.Append("<br />");
            result.Append("<br /><b>Multi-Tenant</b>");
            result.Append("<br />:: Name: " + tenant.Name);
            result.Append("<br />:: Description: " + tenant.Name);
            result.Append("<br />:: Connections: " + tenant.Connections.Count.ToString());

            AppProfile profile = ProfileHelper.Profile;

            result.Append("<br />");
            result.Append("<br /><b>Profile</b>");
            result.Append("<br />:: User Name: " + profile.UserName);
            result.Append("<br />:: Role Name(s): " + String.Join(",", profile.Roles.ToArray()));
            result.Append("<br />:: Is Administrator ? " + profile.IsAdministrator.ToString());
            result.Append("<br />:: Is Authenticated ? " + profile.IsAuthenticated.ToString());
            result.Append("<br />:: Audit Trail");
            foreach (AppProfileAuditTrail auditTrail in profile.AuditTrail)
            {
                string domainEntity = (String.IsNullOrEmpty(auditTrail.Domain) ? "" : auditTrail.Domain + ".") +
                                      auditTrail.Entity;
                result.Append("<br />&nbsp;&nbsp;&nbsp;" + domainEntity + " " +
                              auditTrail.LogMode + " " +
                              (auditTrail.LogOperations ?? "").Trim());
            }

            result.Append("<br />");
            result.Append("<br /><b>Report</b>");
            result.Append("<br />:: RDL: " + ConfigurationHelper.AppSettings <string>("EasyLOB.Report.RDL.Url"));
            result.Append("<br />:: RDLC: " + DIHelper.EnvironmentManager.ApplicationPath(ConfigurationHelper.AppSettings <string>("EasyLOB.Report.RDLC.Directory")));

            result.Append("<br />");
            result.Append("<br /><b>Security - Authentication</b>");
            result.Append("<br />:: IAuthenticationManager: " + (DependencyResolver.Current.GetService <IAuthenticationManager>()).GetType().ToString());
            result.Append("<br />:: IIdentityUnitOfWork: " + (DependencyResolver.Current.GetService <IIdentityUnitOfWork>()).GetType().ToString());
            //IAuthenticationManager authenticationManager = DependencyResolver.Current.GetService<IAuthenticationManager>();
            //result.Append("<br />:: User Name: " + authenticationManager.UserName);
            //result.Append("<br />:: Role Name(s): " + String.Join(",", authenticationManager.Roles.ToArray()));
            //result.Append("<br />:: Is Administrator ? " + authenticationManager.IsAdministrator.ToString());
            //result.Append("<br />:: Is Authenticated ? " + authenticationManager.IsAuthenticated.ToString());

            result.Append("<br />");
            result.Append("<br /><b>Security - Authorization</b>");
            result.Append("<br />:: IAuthorizationManager: " + (DependencyResolver.Current.GetService <IAuthorizationManager>()).GetType().ToString());
            result.Append("<br />:: IActivityUnitOfWork: " + (DependencyResolver.Current.GetService <IActivityUnitOfWork>()).GetType().ToString());

            HttpSessionStateBase session = Session;

            result.Append("<br />");
            result.Append("<br /><b>Session</b>");
            result.Append("<br />:: SessionID: " + Session.SessionID);
            result.Append("<br />:: Key(s)");
            for (int i = 0; i < session.Contents.Count; i++)
            {
                string value = session[i].ToString();
                switch (session.Keys[i])
                {
                case "EasyLOB.Menu":
                    //value = JsonConvert.SerializeObject((List<AppMenu>)session[i]);
                    break;

                case "EasyLOB.MultiTenant":
                    //value = JsonConvert.SerializeObject((List<AppTenant>)session[i]);
                    break;

                case "EasyLOB.Profile":
                    value = JsonConvert.SerializeObject((AppProfile)session[i]);
                    break;

                case "EasyLOB.UrlDictionary":
                    value = JsonConvert.SerializeObject((Dictionary <string, string>)session[i]);
                    break;
                }

                result.Append("<br />&nbsp;&nbsp;&nbsp;" + session.Keys[i] + ": " + value);
            }

            result.Append("<br />");
            result.Append("<br /><b>Web</b>");
            result.Append("<br />:: Application Directory: " + DIHelper.EnvironmentManager.ApplicationDirectory);
            result.Append("<br />:: Web Directory: " + DIHelper.EnvironmentManager.ApplicationPath(ConfigurationHelper.AppSettings <string>("EasyLOB.Directory.Configuration")));
            result.Append("<br />:: Web Url: " + DIHelper.EnvironmentManager.WebUrl);
            result.Append("<br />:: Web Path: " + DIHelper.EnvironmentManager.WebPath);
            result.Append("<br />:: Web Domain: " + DIHelper.EnvironmentManager.WebDomain);
            result.Append("<br />:: Web SubDomain: " + DIHelper.EnvironmentManager.WebSubDomain);

            result.Append("<br />");
            result.Append("<br /><b>HTTP Modules</b>");
            HttpApplication      httpApplication = HttpContext.ApplicationInstance;
            HttpModuleCollection modules         = httpApplication.Modules;

            string[] keys = modules.AllKeys;
            Array.Sort(keys);
            foreach (string key in keys)
            {
                result.Append("<br />:: " + key);
            }

            ViewBag.Status = result.ToString();

            TaskViewModel viewModel = new TaskViewModel("Tasks", "Status", PresentationResources.TaskStatus);

            return(ZView(viewModel));
        }
Пример #10
0
 public void SetModules(HttpModuleCollection col)
 {
     HttpModules = col != null?GetHttpModules(col) : HttpModules;
 }
Пример #11
0
 public void AddModuleToCollection(HttpModuleCollection target, string name, IHttpModule m)
 {
     CommonReflectionUtil.MakeDelegate <Action <string, IHttpModule> >(target, this._mi_HttpModuleCollection_AddModule)(name, m);
 }
Пример #12
0
 public void FixtureSetUp()
 {
     coll = new HttpApplication().Modules;
 }
Пример #13
0
 public ModulesCollector(HttpModuleCollection modules) : this(modules, "modules")
 {
 }
Пример #14
0
        /// <summary>
        /// Registers this module for all events required by the Spring.Web framework
        /// </summary>
        public virtual void Init(HttpApplication app)
        {
            lock (typeof(WebSupportModule))
            {
                s_log.Debug("Initializing Application instance");
                if (!s_isInitialized)
                {
                    HttpModuleCollection modules = app.Modules;
                    foreach (string moduleKey in modules.AllKeys)
                    {
                        if (modules[moduleKey] is SessionStateModule)
                        {
#if !NET_1_1
                            HookSessionEvent((SessionStateModule)modules[moduleKey]);
#else
                            HookSessionEvent11();
#endif
                        }
                    }
                }
                s_isInitialized = true;

                // signal, that VirtualEnvironment is ready to accept
                // handler registrations for EndRequest and EndSession events
                VirtualEnvironment.SetInitialized();
            }

            app.PreRequestHandlerExecute += new EventHandler(OnConfigureHandler);
            app.EndRequest += new EventHandler(VirtualEnvironment.RaiseEndRequest);

#if NET_2_0
            // TODO: this is only a workaround to get us up & running in IIS7/integrated mode
            // We must review all code for relative virtual paths - they must be resolved to application-relative paths
            // during parsing of the object definitions
            bool hideRequestResponse = false;
            if (ContextHideRequestResponse != null)
            {
                hideRequestResponse = (bool)ContextHideRequestResponse.GetValue(app.Context);
                ContextHideRequestResponse.SetValue(app.Context, false);
            }
#endif
            try
            {
                // ensure context is instantiated
                IConfigurableApplicationContext appContext = WebApplicationContext.GetRootContext() as IConfigurableApplicationContext;
                // configure this app + it's module instances
                if (appContext == null)
                {
                    throw new InvalidOperationException("Implementations of IApplicationContext must also implement IConfigurableApplicationContext");
                }

                HttpApplicationConfigurer.Configure(appContext, app);
            }
            finally
            {
#if NET_2_0
                if (ContextHideRequestResponse != null)
                {
                    ContextHideRequestResponse.SetValue(app.Context, hideRequestResponse);
                }
#endif
            }
        }
 /// <summary>
 /// Constructor creates new instance of class and adds all the
 /// modules in M to its collection.
 /// </summary>
 public ExtendableModuleCollection(HttpModuleCollection M)
 {
     Modules      = M;
     ModuleKeys   = new ArrayList(M.AllKeys);
     ExtraModules = new ArrayList();
 }
Пример #16
0
        public ActionResult ModuleList()
        {
            HttpModuleCollection hmc = HttpContext.ApplicationInstance.Modules;

            return(View(hmc));
        }
		public HttpModuleCollection LoadModules (HttpApplication app)
		{
			HttpModuleCollection coll = new HttpModuleCollection ();
			foreach (ModuleItem item in Modules) {
				IHttpModule module = (IHttpModule) Activator.CreateInstance (item.Type, true);
				module.Init (app);
				coll.AddModule (item.Name, module);
			}

			return coll;
		}
Пример #18
0
 public ModulesCollector(HttpModuleCollection modules, string name)
 {
     this.modules = modules;
     this.name    = name;
 }
Пример #19
0
        public void Init(HttpApplication application)
        {
            application.BeginRequest            += new EventHandler(application_BeginRequest);
            application.PostResolveRequestCache += new EventHandler(this.OnApplicationPostResolveRequestCache);
            application.PostMapRequestHandler   += new EventHandler(this.OnApplicationPostMapRequestHandler);
            application.AuthenticateRequest     += new EventHandler(OnAuthenticateRequest);
            application.AddOnAcquireRequestStateAsync(new BeginEventHandler(this.BeginAcquireState), new EndEventHandler(this.EndAcquireState));
            application.ReleaseRequestState += new EventHandler(this.OnReleaseState);
            application.EndRequest          += new EventHandler(this.OnEndRequest);
            HttpModuleCollection modules = null;
            var moduleCollectionField    = typeof(HttpApplication).GetField("_moduleCollection", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);

            if (moduleCollectionField != null)
            {
                try
                {
                    modules = (HttpModuleCollection)moduleCollectionField.GetValue(application);
                }
                catch (System.Reflection.TargetInvocationException ex)
                {
                    if (ex.InnerException != null)
                    {
                        throw ex.InnerException;
                    }
                    throw;
                }
            }
            else
            {
                modules = application.Modules;
            }
            var sessionModule = modules["Session"] as SessionStateModule;

            if (sessionModule != null)
            {
                var mBeginAcquireState = typeof(SessionStateModule).GetMethod("BeginAcquireState", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                var mEndAcquireState   = typeof(SessionStateModule).GetMethod("EndAcquireState", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                var mReleaseState      = typeof(SessionStateModule).GetMethod("OnReleaseState", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                var mEndRequest        = typeof(SessionStateModule).GetMethod("OnEndRequest", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                _beginEventHandler      = (BeginEventHandler)Delegate.CreateDelegate(typeof(BeginEventHandler), sessionModule, mBeginAcquireState);
                _sessionEndEventHandler = (EndEventHandler)Delegate.CreateDelegate(typeof(EndEventHandler), sessionModule, mEndAcquireState);
                _sessionOnReleaseState  = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), sessionModule, mReleaseState);
                _sessionOnEndRequest    = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), sessionModule, mEndRequest);
            }
            var formsAuthModule = modules["FormsAuthentication"] as FormsAuthenticationModule;

            if (formsAuthModule != null)
            {
                var mOnEnter = typeof(FormsAuthenticationModule).GetMethod("OnEnter", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                var mOnLeave = typeof(FormsAuthenticationModule).GetMethod("OnLeave", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                _formsAuthOnEnter = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), formsAuthModule, mOnEnter);
                _formsAuthOnLeave = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), formsAuthModule, mOnLeave);
            }
            var windowsAuthModule = modules["WindowsAuthentication"] as WindowsAuthenticationModule;

            if (formsAuthModule != null)
            {
                var mOnEnter = typeof(WindowsAuthenticationModule).GetMethod("OnEnter", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
                _windowsAuthOnEnter = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), windowsAuthModule, mOnEnter);
            }
        }