public override IController CreateController(RequestContext requestContext, string controllerName) {
			IController ctrl = base.CreateController(requestContext, controllerName);

			if (ctrl is IAdminModule) {
				var principal = requestContext.HttpContext.User;

				if (principal.Identity.IsAuthenticated) {
					if (ctrl is IAdminModule) {
						IAdminModule m = (ctrl as IAdminModule);
						m.SiteID = SiteData.CurrentSiteID;
						m.ModuleID = Guid.Empty;
					}
				} else {
					SiteData.WriteDebugException("cmscontrollerfactory_createcontroller", new Exception(String.Format("Anonymous: {0} - {1}", ctrl.GetType(), controllerName)));

					requestContext.RouteData.Values["action"] = "Index";
					requestContext.RouteData.Values["id"] = null;

					ctrl = new CmsAdminController();
				}
			}

			if (ctrl is IWidget) {
				IWidget w = ctrl as IWidget;
				w.SiteID = SiteData.CurrentSiteID;
			}

			return ctrl;
		}
        public override IController CreateController(RequestContext requestContext, string controllerName)
        {
            if (controllers != null && controllers.ContainsKey(controllerName)) {
                return controllers[controllerName](requestContext);
            } else {
                IController ctrl = base.CreateController(requestContext, controllerName);

                if (ctrl is IAdminModule || ctrl is IAdminModuleLoad) {
                    var principal = requestContext.HttpContext.User;

                    if (principal.Identity.IsAuthenticated) {
                        if (ctrl is IAdminModule) {
                            IAdminModule m = ((IAdminModule)ctrl);
                            m.SiteID = SiteData.CurrentSiteID;
                            m.ModuleID = Guid.Empty;
                        }

                        if (ctrl is IAdminModuleLoad) {
                            IAdminModule data = new AdminModuleData();
                            data.SiteID = SiteData.CurrentSiteID;
                            data.ModuleID = Guid.Empty;

                            ((IAdminModuleLoad)ctrl).LoadData(data);
                        }
                    } else {
                        ctrl = new CmsAdminController();
                    }
                }

                if (ctrl is IWidget) {
                    IWidget w = (IWidget)ctrl;
                    w.SiteID = SiteData.CurrentSiteID;
                }

                return ctrl;
            }
        }