public UserController() { Configuration _config = Configuration.GetConfig(); mProviderTypeName = _config.ProviderTypeName; }
public void AuthenticationLogon() { Configuration configuration = Configuration.GetConfig(); UserController authUserController = new UserController(); string authCookies = Configuration.AUTHENTICATION_KEY + "_" + _portalSettings.PortalId; string LoggedOnUserName = HttpContext.Current.Request.ServerVariables[Configuration.LOGON_USER_VARIABLE]; // HACK : Modified to not error if object is null. //if( LoggedOnUserName.Length > 0 ) if (!String.IsNullOrEmpty(LoggedOnUserName)) { UserInfo authUser; int intUserId = 0; Entities.Users.UserInfo dnnUser = Entities.Users.UserController.GetUserByName(_portalSettings.PortalId, LoggedOnUserName, false); if (dnnUser != null) { intUserId = dnnUser.UserID; // Synchronize role membership if it's required in settings if (configuration.SynchronizeRole) { authUser = authUserController.GetUser(LoggedOnUserName); // user object might be in simple version in none active directory network if (authUser.GUID.Length != 0) { authUser.UserID = intUserId; UserController.AddUserRoles(_portalSettings.PortalId, authUser); } } } else { // User not exists in DNN database, obtain user info from provider to add new authUser = authUserController.GetUser(LoggedOnUserName); if (authUser != null) { authUserController.AddDNNUser(authUser); intUserId = authUser.UserID; SetStatus(_portalSettings.PortalId, AuthenticationStatus.WinLogon); } } if (intUserId > 0) { FormsAuthentication.SetAuthCookie(Convert.ToString(LoggedOnUserName), true); //check if user has supplied custom value for expiration int PersistentCookieTimeout = 0; if (Config.GetSetting("PersistentCookieTimeout") != null) { PersistentCookieTimeout = int.Parse(Config.GetSetting("PersistentCookieTimeout")); //only use if non-zero, otherwise leave as asp.net value if (PersistentCookieTimeout != 0) { //locate and update cookie string authCookie = FormsAuthentication.FormsCookieName; foreach (string cookie in HttpContext.Current.Response.Cookies) { if (cookie.Equals(authCookie)) { HttpContext.Current.Response.Cookies[cookie].Expires = DateTime.Now.AddMinutes(PersistentCookieTimeout); } } } } SetStatus(_portalSettings.PortalId, AuthenticationStatus.WinLogon); // Get ipAddress for eventLog string ipAddress = ""; if (HttpContext.Current.Request.UserHostAddress != null) { ipAddress = HttpContext.Current.Request.UserHostAddress; } EventLogController eventLog = new EventLogController(); LogInfo eventLogInfo = new LogInfo(); eventLogInfo.AddProperty("IP", ipAddress); eventLogInfo.LogPortalID = _portalSettings.PortalId; eventLogInfo.LogPortalName = _portalSettings.PortalName; eventLogInfo.LogUserID = intUserId; eventLogInfo.LogUserName = LoggedOnUserName; eventLogInfo.AddProperty("WindowsAuthentication", "True"); eventLogInfo.LogTypeKey = "LOGIN_SUCCESS"; eventLog.AddLog(eventLogInfo); } } else { // Not Windows Authentication } // params "logon=windows" does nothing, just to force page to be refreshed string strURL = Globals.NavigateURL(_portalSettings.ActiveTab.TabID, "", "logon=windows"); HttpContext.Current.Response.Redirect(strURL, true); }