//protected void txtEmail_Change(object sender, EventArgs e) //{ // try // { // int intRecords = 0; // ArrayList u = new ArrayList(); // u = UserController.GetUsersByEmail(this.PortalId, txtEmail.Text.ToString(), 0, 1, ref intRecords); // if (u.Count > 0) // { // // Localization.GetString("AlreadyRegisteredAccountMessage", this.LocalResourceFile) // // AlreadyRegisteredAccountMessage.Text // // lblErrorMessage.Text = "Your e-mail address already has a site account. Please login first to proceed."; // lblErrorMessage.Text = Localization.GetString("AlreadyRegisteredAccountMessage", this.LocalResourceFile); // PanelLogin.Visible = true; // //txtUserName.Text = u[7].ToString(); // GridView1.Visible = true; // GridView1.DataSource = u; // GridView1.DataBind(); // GridView1.Visible = true; // txtUserName.Text = GridView1.Rows[0].Cells[11].Text.ToString(); // PanelPassword.Visible = false; // } // else // { // // GridView1.Dispose(); // // GridView1.Visible = false; // PanelLogin.Visible = false; // reqFirstName.ValidationGroup = "NewRegister"; // reqLastName.ValidationGroup = "NewRegister"; // reqAddress.ValidationGroup = "NewRegister"; // reqCity.ValidationGroup = "NewRegister"; // reqPhoneNumber.ValidationGroup = "NewRegister"; // } // pnlTerms.Visible = false; // } // catch (Exception ex) // { // Exceptions.ProcessModuleLoadException(this, ex); // } //} protected void btnLogin_Click(object sender, EventArgs e) { //validate username/password combination DotNetNuke.Entities.Users.UserInfo myUser = new DotNetNuke.Entities.Users.UserInfo(); DotNetNuke.Security.Membership.UserLoginStatus userLoginStatus = new DotNetNuke.Security.Membership.UserLoginStatus(); myUser = DotNetNuke.Entities.Users.UserController.ValidateUser(this.PortalId, txtUserName.Text.ToString(), txtLoginPassword.Text.ToString(), "", "", GetIPAddress(), ref userLoginStatus); // Label1.Text += "userLoginStatus: " + userLoginStatus.ToString() + ""; if (userLoginStatus == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUCCESS || userLoginStatus == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUPERUSER) { //login the user ... DotNetNuke.Entities.Users.UserController.UserLogin(PortalId, myUser, "", "", true); string newURL = Globals.NavigateURL("", "", "LoginStatus=Success", "Foreclosure=" + PropertyID.ToString()); // Response.Redirect(Request.RawUrl,true); Response.Redirect(newURL, true); } else { //loggedIn = false; //loginFailed = true; lblErrorMessage.Text = "Login Failed"; } }
protected void Page_Load(object sender, EventArgs e) { try { LogMessage("Welcome", "Welcome"); DotNetNuke.Entities.Modules.ModuleController objModulesHome = new DotNetNuke.Entities.Modules.ModuleController(); int.TryParse("" + objModulesHome.GetModuleSettings(ModuleId)["HomeMobile"], out tabidHome); string id = "" + Request["id"]; LogMessage("Param Id", id); string pwd = "" + Request["pwd"]; LogMessage("Param Pwd", pwd); DotNetNuke.Security.Membership.UserLoginStatus loginStatus = new DotNetNuke.Security.Membership.UserLoginStatus(); LogMessage("LoginStatus", loginStatus.ToString()); if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(pwd)) { DotNetNuke.Entities.Users.UserInfo userInfo = DotNetNuke.Entities.Users.UserController.ValidateUser(this.PortalId, id, pwd, "", this.PortalSettings.PortalName, Request.UserHostAddress, ref loginStatus); if (userInfo != null) { LogMessage("UserInfo", userInfo.UserID.ToString()); } if (userInfo != null && loginStatus == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUCCESS) { DotNetNuke.Entities.Users.UserController.UserLogin(this.PortalId, userInfo, this.PortalSettings.PortalName, Request.UserHostAddress, true); Response.Redirect(Globals.NavigateURL(tabidHome, "")); //refresh site } else { //Message d'erreur et ouverture sur le site } } else { //Message d'erreur et ouverture sur le site LogMessage("PB identifiants", "Identifiant VIDE"); } } catch (Exception ee) { AIS.Functions.Error(ee); } }
protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "application/json"; object json = new { Status = "Login Failed" }; if (!string.IsNullOrWhiteSpace(Request.Form["u"])) { aqufitEntities entities = new aqufitEntities(); string uname = Request.Form["u"]; string password = Request.Form["p"]; if (uname.Contains("@")) { // this is an email login User user = entities.UserSettings.OfType <User>().FirstOrDefault(u => u.UserEmail == uname); if (user == null) { json = new { Status = "Email ERROR" }; Response.Write(json); Response.Flush(); Response.End(); return; } uname = user.UserName; } uname = uname.ToLower(); DotNetNuke.Security.Membership.UserLoginStatus status = DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_FAILURE; DotNetNuke.Entities.Portals.PortalController pc = new DotNetNuke.Entities.Portals.PortalController(); DotNetNuke.Entities.Portals.PortalInfo pi = pc.GetPortal(0); UserInfo uinfo = UserController.UserLogin(0, uname, password, null, pi.PortalName, DotNetNuke.Services.Authentication.AuthenticationLoginBase.GetIPAddress(), ref status, true); if (status == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUCCESS || status == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUPERUSER) { UserSettings usersettings = entities.UserSettings.OfType <User>().FirstOrDefault(u => u.UserKey == uinfo.UserID && u.PortalKey == 0); if (!usersettings.Guid.HasValue) { // we only add a UUID if there was none before.. this is so the "remember me" on the desktop site will still work. usersettings.Guid = Guid.NewGuid(); entities.SaveChanges(); } json = new { Status = "SUCCESS", Token = usersettings.Guid.ToString(), UserId = usersettings.Id, Username = usersettings.UserName }; } } Response.Write(serializer.Serialize(json)); Response.Flush(); Response.End(); }
public static DotNetNuke.Entities.Users.UserInfo GetValidUser(int PortalId, string username, string password) { var userLoginStatus = new DotNetNuke.Security.Membership.UserLoginStatus(); return(DotNetNuke.Entities.Users.UserController.ValidateUser(PortalId, username, password, "", "", "", ref userLoginStatus)); }
public bool CreateNewUser(string FirstName, string LastName, string Email, string Password, string AddUserRole) { try { UserInfo oUser = new UserInfo(); oUser.PortalID = this.PortalId; oUser.IsSuperUser = false; oUser.FirstName = FirstName; oUser.LastName = LastName; oUser.Email = Email; oUser.Username = Email; oUser.DisplayName = FirstName + " " + LastName; //Fill MINIMUM Profile Items (KEY PIECE) oUser.Profile.PreferredLocale = PortalSettings.DefaultLanguage; oUser.Profile.PreferredTimeZone = PortalSettings.TimeZone; oUser.Profile.FirstName = oUser.FirstName; oUser.Profile.LastName = oUser.LastName; oUser.Profile.Country = "United States"; oUser.Profile.Region = ddlStates.SelectedValue.ToString(); oUser.Profile.Street = txtAddress.Text.ToString(); oUser.Profile.City = txtCity.Text.ToString(); oUser.Profile.Telephone = txtPhoneNumber.Text.ToString(); oUser.Profile.PostalCode = txtZip.Text.ToString(); //Set Membership UserMembership oNewMembership = new UserMembership(oUser); oNewMembership.Approved = true; oNewMembership.CreatedDate = System.DateTime.Now; // oNewMembership.Email = oUser.Email; oNewMembership.IsOnLine = false; // oNewMembership.Username = oUser.Username; oNewMembership.Password = Password; //Bind membership to user oUser.Membership = oNewMembership; //Add the user, ensure it was successful if (DotNetNuke.Security.Membership.UserCreateStatus.Success == UserController.CreateUser(ref oUser)) { //Add Role if passed something from module settings if (AddUserRole.Length > 0) { DotNetNuke.Security.Roles.RoleController rc = new DotNetNuke.Security.Roles.RoleController(); //retrieve role int AuctionPortalID = this.PortalId; string groupName = AddUserRole; DotNetNuke.Security.Roles.RoleInfo ri = rc.GetRoleByName(AuctionPortalID, groupName); rc.AddUserRole(AuctionPortalID, oUser.UserID, ri.RoleID, DotNetNuke.Security.Roles.RoleStatus.Approved, false, DateTime.Today, Null.NullDate); } // LOGIN THE NEWLY CREATED USER DotNetNuke.Entities.Users.UserInfo myNewUser = new DotNetNuke.Entities.Users.UserInfo(); DotNetNuke.Security.Membership.UserLoginStatus userLoginStatus = new DotNetNuke.Security.Membership.UserLoginStatus(); myNewUser = DotNetNuke.Entities.Users.UserController.ValidateUser(this.PortalId, Email, Password, "", "", GetIPAddress(), ref userLoginStatus); if (userLoginStatus == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUCCESS || userLoginStatus == DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_SUPERUSER) { //login the user ... DotNetNuke.Entities.Users.UserController.UserLogin(PortalId, myNewUser, "", GetIPAddress(), true); string newURL = Globals.NavigateURL("", "", "NewAccount=Success", "Foreclosure=" + PropertyID.ToString()); // Response.Redirect(Request.RawUrl,true); Response.Redirect(newURL, true); } else { lblErrorMessage.Text = "New User Login Failed"; } return(true); } else { return(false); } } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); return(false); } }
public void Configuration(IAppBuilder app) { try { #region "SSL settings" // Remove insecure protocols (SSL3, TLS 1.0, TLS 1.1) ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3; ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Tls; ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Tls11; // Add TLS 1.2 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12; #endregion Auth0ConfigBase config = Auth0ConfigBase.GetConfig(Constants.PROVIDER_NAME, Helpers.FirstPortalID); System.Web.Helpers.AntiForgeryConfig.UniqueClaimTypeIdentifier = System.Security.Claims.ClaimTypes.NameIdentifier; // Configure Auth0 parameters string auth0Domain = config.Domain; string auth0ClientId = config.ClientID; // Enable the Cookie saver middleware to work around a bug in the OWIN implementation app.UseKentorOwinCookieSaver(); // Set Cookies as default authentication type app.SetDefaultSignInAsAuthenticationType(Constants.AUTH_TYPE); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = Constants.AUTH_TYPE, CookieName = Constants.AUTH_COOKIE_NAME, }); // Configure Auth0 authentication app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions { AuthenticationType = Constants.AUTH_TYPE, Authority = $"https://{auth0Domain}", ClientId = auth0ClientId, Scope = "openid profile email", ResponseType = OpenIdConnectResponseType.CodeIdToken, TokenValidationParameters = new TokenValidationParameters { NameClaimType = System.Security.Claims.ClaimTypes.NameIdentifier }, Notifications = new OpenIdConnectAuthenticationNotifications { RedirectToIdentityProvider = notification => { DotNetNuke.Entities.Portals.PortalSettings _portalSettings = null; #region "Get settings from current DNN portal" if (notification.OwinContext.Environment["System.Web.HttpContextBase"] != null && notification.OwinContext.Environment["System.Web.HttpContextBase"] is System.Web.HttpContextWrapper) { System.Web.HttpContextWrapper context = notification.OwinContext.Environment["System.Web.HttpContextBase"] as System.Web.HttpContextWrapper; if (context.Items["PortalSettings"] != null && context.Items["PortalSettings"] is DotNetNuke.Entities.Portals.PortalSettings) { _portalSettings = context.Items["PortalSettings"] as DotNetNuke.Entities.Portals.PortalSettings; } } #endregion #region "Get provider settings" Auth0ConfigBase _providerConfig = null; if (_portalSettings != null) { _providerConfig = Auth0ConfigBase.GetConfig(Constants.PROVIDER_NAME, _portalSettings.PortalId); } else { logger.Debug("Can't obtain DNN settings, login process terminated!!"); } #endregion #region "Set Auth0 coordinates according to the current DNN portal" if (_portalSettings != null && notification.ProtocolMessage.RequestType != OpenIdConnectRequestType.Logout) { notification.Options.Authority = $"https://{_providerConfig.Domain}"; notification.Options.ClientId = _providerConfig.ClientID; notification.Options.ClientSecret = _providerConfig.ClientSecret; notification.Options.RedirectUri = _providerConfig.RedirectUri; notification.Options.CallbackPath = Microsoft.Owin.PathString.FromUriComponent("/Default.aspx"); notification.ProtocolMessage.ClientId = _providerConfig.ClientID; notification.ProtocolMessage.ClientSecret = _providerConfig.ClientSecret; notification.ProtocolMessage.RedirectUri = _providerConfig.RedirectUri; } #endregion #region "Log-off code snippet" else if (notification.ProtocolMessage.RequestType == OpenIdConnectRequestType.Logout) { var logoutUri = $"https://{_providerConfig.Domain}/v2/logout?client_id={_providerConfig.ClientID}"; var postLogoutUri = _providerConfig.PostLogoutRedirectUri; if (!string.IsNullOrEmpty(postLogoutUri)) { if (postLogoutUri.StartsWith("/")) { // transform to absolute var request = notification.Request; postLogoutUri = request.Scheme + "://" + request.Host + request.PathBase + postLogoutUri; } logoutUri += $"&returnTo={ Uri.EscapeDataString(postLogoutUri)}"; } notification.Response.Redirect(logoutUri); notification.HandleResponse(); } #endregion #region "Output some diagnistic info" if (_providerConfig != null && _providerConfig.IsDiagnosticModeEnabled) { logger.Debug(string.Format("Redirecting to '{0}' using following coordinates:", notification.Options.Authority)); logger.Debug("Client id: " + notification.Options.ClientId); logger.Debug("Redirect uri: " + notification.Options.RedirectUri); logger.Debug("Callback path: " + notification.Options.CallbackPath); } #endregion return(Task.FromResult(0)); }, AuthorizationCodeReceived = async context => { DotNetNuke.Entities.Portals.PortalSettings _portalSettings = null; #region "Get settings from current DNN portal" if (context.OwinContext.Environment["System.Web.HttpContextBase"] != null && context.OwinContext.Environment["System.Web.HttpContextBase"] is System.Web.HttpContextWrapper) { System.Web.HttpContextWrapper _context = context.OwinContext.Environment["System.Web.HttpContextBase"] as System.Web.HttpContextWrapper; if (_context.Items["PortalSettings"] != null && _context.Items["PortalSettings"] is DotNetNuke.Entities.Portals.PortalSettings) { _portalSettings = _context.Items["PortalSettings"] as DotNetNuke.Entities.Portals.PortalSettings; } } #endregion #region "Get provider settings" Auth0ConfigBase _providerConfig = null; if (_portalSettings != null) { _providerConfig = Auth0ConfigBase.GetConfig(Constants.PROVIDER_NAME, _portalSettings.PortalId); } else { throw new ArgumentNullException("Can't obtain DNN settings, login process terminated!!"); } #endregion GS.Auth0.Components.UserController userController = new GS.Auth0.Components.UserController(); //get or create DNN user DotNetNuke.Entities.Users.UserInfo _userInfo = userController.User_Create(context.AuthenticationTicket.Identity.Name, _portalSettings, _providerConfig.IsDiagnosticModeEnabled); if (_userInfo != null) { //update DNN user profile userController.User_Update( _userInfo, context.AuthenticationTicket.Identity?.FindFirst(c => c.Type == "nickname")?.Value, context.AuthenticationTicket.Identity?.FindFirst(c => c.Type == System.Security.Claims.ClaimTypes.Email)?.Value, _portalSettings.PortalId, _providerConfig.IsDiagnosticModeEnabled); DotNetNuke.Security.Membership.UserLoginStatus loginStatus = DotNetNuke.Security.Membership.UserLoginStatus.LOGIN_FAILURE; UserInfo objUserInfo = DotNetNuke.Entities.Users.UserController.ValidateUser(_portalSettings.PortalId, context.AuthenticationTicket.Identity.Name, "", Constants.PROVIDER_NAME, "", _portalSettings.PortalName, "", ref loginStatus); //set type of current authentication provider DotNetNuke.Services.Authentication.AuthenticationController.SetAuthenticationType(Constants.AUTH_TYPE); DotNetNuke.Entities.Users.UserController.UserLogin(_portalSettings.PortalId, _userInfo, _portalSettings.PortalName, context.OwinContext.Request.RemoteIpAddress, false); } else { throw new ArgumentNullException(string.Format("Can't create or get user '{0}' from DNN.", context.AuthenticationTicket.Identity.Name)); } await Task.FromResult(0); }, AuthenticationFailed = (context) => { //get the error message and send it to the DNN login page DotNetNuke.Entities.Portals.PortalSettings _portalSettings = null; #region "Get settings from current DNN portal" if (context.OwinContext.Environment["System.Web.HttpContextBase"] != null && context.OwinContext.Environment["System.Web.HttpContextBase"] is System.Web.HttpContextWrapper) { System.Web.HttpContextWrapper _context = context.OwinContext.Environment["System.Web.HttpContextBase"] as System.Web.HttpContextWrapper; if (_context.Items["PortalSettings"] != null && _context.Items["PortalSettings"] is DotNetNuke.Entities.Portals.PortalSettings) { _portalSettings = _context.Items["PortalSettings"] as DotNetNuke.Entities.Portals.PortalSettings; } } #endregion #region "Get provider settings" Auth0ConfigBase _providerConfig = null; if (_portalSettings != null) { _providerConfig = Auth0ConfigBase.GetConfig(Constants.PROVIDER_NAME, _portalSettings.PortalId); } else { logger.Error("Can't obtain DNN settings from 'AuthenticationFailed' event, login process terminated!!"); } #endregion if (_providerConfig.IsDiagnosticModeEnabled) { logger.Error(string.Format("OIDC authentication failed, details: {0}", context.Exception)); } string redirectUrl = DotNetNuke.Common.Globals.NavigateURL(_portalSettings.LoginTabId, "Login", new string[] { Constants.ALERT_QUERY_STRING + "=" + context.Exception.Message }); context.Response.Redirect(redirectUrl); context.HandleResponse(); return(Task.FromResult(0)); }, #region "Rest of 'Notification' methods, not in use for now." //SecurityTokenValidated = notification => //{ // return Task.FromResult(0); //}, //MessageReceived = (context) => //{ // return Task.FromResult(0); //}, #endregion }, }); } catch (Exception ex) { logger.Error(ex); } }