public ActionResult Create() { SiteUser user = new SiteUser(); user.UserTitleList = EnumHelper.GetSelectList<enUserTitle>(); return View("CreateOrEdit", user); }
protected void SubBtnClick(object sender, EventArgs e) { DateTime bDate; //instantiate a new Site User SiteUser s = new SiteUser(); //assign values to properties from text boxes s.FirstName = txtFirstName.Text; s.LastName = txtLastName.Text; bool IsDate = DateTime.TryParse(txtBirthday.Text, out bDate); if (IsDate) { s.BirthDay = bDate; } else { Response.Write("<script type='text/javaScript'>alert('Enter a valid date')</script>"); return; } s.Email = txtEmail.Text; //save new instance to a session variable Session["NewUser"] = s; //redirect to next page Response.Redirect("Default2.aspx"); }
/// This code creates an instance of the SiteUser class. /// It then assigns the user-entered registration information to the class properties. protected void Button1_Click(object sender, EventArgs e) { SiteUser su = new SiteUser(); su.LastName = txtLastName.Text; su.FirstName = txtFirstName.Text; su.BirthDay = txtBirthday.Text; su.Email = txtEmail.Text; ///This code creates a session variable that stores the above class for use on other pages. ///It then redirects to the second page. Session["siteuser"] = su; Response.Redirect("Default2.aspx"); }
protected void SendEmailNotification(SiteUser user) { StringBuilder template = new StringBuilder(AppUtil.ReadEmailTemplate(AppConstants.EmailTemplate.GENERAL_TEMPLATE)); if (template.Length > 0) { String fromEmail = ConfigReader.SupportEmail; String subject = "Medstudy Admin : Activate your account."; StringBuilder sb = new StringBuilder(10); sb.AppendFormat("Dear {0} {1} {2},<br/><br/>", AppUtil.Encode(user.FirstName), AppUtil.Encode(user.MiddleName), AppUtil.Encode(user.LastName)); sb.Append("You have successfully created your profile. Please click on the following link to activate your account.<br/><br/>"); String Url = String.Format("{0}{1}?{2}={3}", AppUtil.GetDomainAddress(), AppConstants.Pages.ACTIVATE_ACCOUNT, AppConstants.UrlParams.KEY, user.ActivationKey); sb.AppendFormat("<a href='{0}'>{0}</a>", Url); sb.Append("<br/><br/>"); sb.Append("Thanks"); template.Replace(AppConstants.EmailTemplate.CustomTag.MESSAGE, sb.ToString()); MailHelper.SendMail(user.Email, String.Empty, String.Empty, fromEmail, subject, template.ToString()); } }
public ActionResult Create(SiteUser user) { if (ModelState.IsValid) { int counter = db.Users.Where(c => (c.USER_NUMBER == user.USER_NUMBER && c.USER_ID != user.USER_ID) || (c.EMAILID == user.EMAILID && c.USER_ID != user.USER_ID)).Count(); if (counter == 0) { user.LOGIN_DATE = System.DateTime.Now; user.CREATION_DATE = System.DateTime.Now; user.MODIFY_DATE = System.DateTime.Now; db.Users.Add(user); db.SaveChanges(); return RedirectToAction("Index"); } else { ModelState.AddModelError(string.Empty, "User ID & Email must be unique"); } } user.UserTitleList = EnumHelper.GetSelectList<enUserTitle>(); return View("CreateOrEdit", user); }
public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new SiteUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return RedirectToAction("Index", "Posts"); } AddErrors(result); } // If we got this far, something failed, redisplay form return View(model); }
public UserPreDeleteEventArgs(SiteUser siteUser, bool flaggedAsDeletedOnly) { _siteUser = siteUser; _flaggedAsDeletedOnly = flaggedAsDeletedOnly; }
public override MembershipUser GetUser(string username, bool userIsOnline) { /* * Takes, as input, a user name or user ID (the method is overloaded) and a * Boolean value indicating whether to update the user's LastActivityDate to * show that the user is currently online. GetUser returns a MembershipUser object * representing the specified user. If the user name or user ID is invalid (that is, if * it doesn't represent a registered user) GetUser returns null (Nothing in Visual Basic). */ if ((username != null) && (username.Length > 0)) { SiteUser siteUser = null; siteUser = new SiteUser(username); if (siteUser.UserId != Guid.Empty) { if (userIsOnline) { //siteUser.UpdateLastActivityTime(); } return this.CreateMembershipUserFromSiteUser(siteUser); } } return null; }
public override bool ChangePassword(string username, string oldPassword, string newPassword) { /* * Takes, as input, a user name, a password (the user's current password), and a * new password and updates the password in the membership data source. * ChangePassword returns true if the password was updated successfully. Otherwise, * it returns false. Before changing a password, ChangePassword calls the provider's * virtual OnValidatingPassword method to validate the new password. It then * changes the password or cancels the action based on the outcome of the call. If the * user name, password, new password, or password answer is not valid, * ChangePassword does not throw an exception; it simply returns false. Following a * successful password change, ChangePassword updates the user's * LastPasswordChangedDate. */ bool result = false; if ( (username == null) || (username == String.Empty) || (oldPassword == null) || (oldPassword == String.Empty) || (newPassword == null) || (newPassword == String.Empty) ) { return result; } if (newPassword.Length < this.MinRequiredPasswordLength) { throw new ArgumentException("Mật mã không đủ độ dài"); } int countNonAlphanumericCharacters = 0; for (int i = 0; i < newPassword.Length; i++) { if (!char.IsLetterOrDigit(newPassword, i)) { countNonAlphanumericCharacters++; } } if (countNonAlphanumericCharacters < MinRequiredNonAlphanumericCharacters) { throw new ArgumentException("Mật Mã Yêu Cầu Phải Có Ký Tự Đặc Biệt"); } if (PasswordStrengthRegularExpression.Length > 0) { if (!Regex.IsMatch(newPassword, PasswordStrengthRegularExpression)) { throw new ArgumentException( "Mật Mã Không Giống \"Regular Expression\""); } } ValidatePasswordEventArgs e = new ValidatePasswordEventArgs(username, newPassword, false); OnValidatingPassword(e); if (e.Cancel) { if (e.FailureInformation != null) { throw e.FailureInformation; } else { throw new ArgumentException("Việc đánh giá mật mã tùy ý thất bại."); } } SiteUser siteUser = new SiteUser(username); if (siteUser.UserId == Guid.Empty) { return result; } if ( ((MembershipPasswordFormat)PasswordFormat == MembershipPasswordFormat.Hashed) ) { if (siteUser.Password == EncodePassword(oldPassword, MembershipPasswordFormat.Hashed)) { siteUser.Password = EncodePassword(newPassword, MembershipPasswordFormat.Hashed); //result = siteUser.Save(); } } else if ((MembershipPasswordFormat)PasswordFormat == MembershipPasswordFormat.Encrypted) { if (siteUser.Password == EncodePassword(oldPassword, MembershipPasswordFormat.Encrypted)) { siteUser.Password = EncodePassword(newPassword, MembershipPasswordFormat.Encrypted); // result = siteUser.Save(); } } else if ((MembershipPasswordFormat)PasswordFormat == MembershipPasswordFormat.Clear) { if (siteUser.Password == oldPassword) { siteUser.Password = newPassword; // result = siteUser.Save(); } } if (result) { //siteUser.UpdateLastPasswordChangeTime(); } return result; }
/// <summary> /// Create a new SiteUser object. /// </summary> /// <param name="userID">Initial value of UserID.</param> /// <param name="userName">Initial value of UserName.</param> /// <param name="password">Initial value of Password.</param> /// <param name="eMail">Initial value of EMail.</param> /// <param name="invitesCount">Initial value of InvitesCount.</param> public static SiteUser CreateSiteUser(int userID, string userName, string password, string eMail, int invitesCount) { SiteUser siteUser = new SiteUser(); siteUser.UserID = userID; siteUser.UserName = userName; siteUser.Password = password; siteUser.EMail = eMail; siteUser.InvitesCount = invitesCount; return siteUser; }
public async Task <IActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { log.LogDebug("ExternalLoginConfirmation called with returnurl " + returnUrl); if (signInManager.IsSignedIn(User)) { return(RedirectToAction("Index", "Manage")); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await signInManager.GetExternalLoginInfoAsync(); if (info == null) { return(View("ExternalLoginFailure")); } var user = new SiteUser { SiteId = Site.Id, UserName = model.Email, Email = model.Email }; var result = await userManager.CreateAsync(user); if (result.Succeeded) { log.LogDebug("ExternalLoginConfirmation user created "); await ipAddressTracker.TackUserIpAddress(Site.Id, user.Id); result = await userManager.AddLoginAsync(user, info); if (result.Succeeded) { log.LogDebug("ExternalLoginConfirmation AddLoginAsync succeeded "); await signInManager.SignInAsync(user, isPersistent : false); if (!string.IsNullOrEmpty(returnUrl)) { return(LocalRedirect(returnUrl)); } return(this.RedirectToSiteRoot(Site)); } else { log.LogDebug("ExternalLoginConfirmation AddLoginAsync failed "); } } else { log.LogDebug("ExternalLoginConfirmation failed to user created "); } AddErrors(result); } else { log.LogDebug("ExternalLoginConfirmation called with ModelStateInvalid "); } ViewData["ReturnUrl"] = returnUrl; return(View(model)); }
private void LoadSettings() { pageId = WebUtils.ParseInt32FromQueryString("pageid", -1); moduleId = WebUtils.ParseInt32FromQueryString("mid", -1); cacheDependencyKey = "Module-" + moduleId.ToString(); iconPath = ImageSiteRoot + "/Data/SiteImages/FeatureIcons/"; skinBaseUrl = SiteUtils.GetSkinBaseUrl(this); isSiteEditor = SiteUtils.UserIsSiteEditor(); lnkCancel.NavigateUrl = SiteUtils.GetCurrentPageUrl(); if ((WebUser.IsAdminOrContentAdmin) || (isSiteEditor)) { canEdit = true; isAdmin = true; lnkEditContent.Visible = true; lnkEditContent.Text = Resource.ContentManagerViewEditContentLabel; lnkEditContent.NavigateUrl = SiteRoot + "/Admin/ContentManagerPreview.aspx?mid=" + this.moduleId.ToString(CultureInfo.InvariantCulture); lnkPublishing.Visible = true; lnkPublishing.Text = Resource.ContentManagerPublishingContentLink; lnkPublishing.NavigateUrl = SiteRoot + "/Admin/ContentManager.aspx?mid=" + this.moduleId.ToString(CultureInfo.InvariantCulture); } else { bool hideOtherTabs = WebConfigSettings.HideModuleSettingsGeneralAndSecurityTabsFromNonAdmins; if (hideOtherTabs) { liGeneralSettings.Visible = false; liSecurity.Visible = false; tabGeneralSettings.Visible = false; tabSecurity.Visible = false; } } divCacheTimeout.Visible = !WebConfigSettings.DisableContentCache; pnlDraftEditRoles.Visible = (WebConfigSettings.EnableContentWorkflow && siteSettings.EnableContentWorkflow); if (pageId > -1) { this.divParentPage.Visible = true; module = new Module(this.moduleId, pageId); } else { module = new Module(this.moduleId); } if (!canEdit) { if ( (WebUser.IsInRoles(module.AuthorizedEditRoles)) || (WebUser.IsInRoles(module.DraftEditRoles)) || (WebUser.IsInRoles(CurrentPage.EditRoles)) || (WebUser.IsInRoles(CurrentPage.DraftEditOnlyRoles)) ) { canEdit = true; } } if (!canEdit) { if (module.EditUserId > 0) { SiteUser siteUser = SiteUtils.GetCurrentSiteUser(); if (module.EditUserId == siteUser.UserId) { canEdit = true; } } } if (module.SiteGuid != siteSettings.SiteGuid) { canEdit = false; } if (canEdit && (!isAdmin) && (WebUser.IsInRoles(siteSettings.RolesNotAllowedToEditModuleSettings))) { canEdit = false; } }
public void InstallContent(Module module, string configInfo) { if (string.IsNullOrEmpty(configInfo)) { return; } int userId = SiteUser.GetNewestUserId(module.SiteId); XmlDocument xml = new XmlDocument(); using (StreamReader stream = File.OpenText(HostingEnvironment.MapPath(configInfo))) { xml.LoadXml(stream.ReadToEnd()); } foreach (XmlNode node in xml.DocumentElement.ChildNodes) { if (node.Name == "forum") { Forum forum = new Forum(); forum.ModuleId = module.ModuleId; XmlAttributeCollection attributeCollection = node.Attributes; if (attributeCollection["title"] != null) { forum.Title = attributeCollection["title"].Value; } if (attributeCollection["sortOrder"] != null) { int sort = 1; if (int.TryParse(attributeCollection["sortOrder"].Value, out sort)) { forum.SortOrder = sort; } } foreach (XmlNode descriptionNode in node.ChildNodes) { if (descriptionNode.Name == "description") { forum.Description = descriptionNode.InnerText; break; } } forum.CreatedByUserId = userId; forum.Save(); foreach (XmlNode threadsNode in node.ChildNodes) { if (threadsNode.Name == "threads") { foreach (XmlNode threadNode in threadsNode.ChildNodes) { if (threadNode.Name == "thread") { XmlAttributeCollection threadAttributes = threadNode.Attributes; ForumThread thread = new ForumThread(); thread.ForumId = forum.ItemId; thread.PostUserId = userId; if (threadAttributes["subject"] != null) { thread.PostSubject = threadAttributes["subject"].Value; } foreach (XmlNode postNode in threadNode.ChildNodes) { if (postNode.Name == "post") { thread.PostMessage = postNode.InnerText; break; //TODO: this is limited to one post when creating a thread. could support more but just making it for the demo site } } thread.Post(); } } break; //there should only be one threads node } } } } }
/// <summary> /// required implementation /// </summary> /// <param name="userNames">a list of usernames</param> /// <param name="roleNames">a list of roles</param> public override void RemoveUsersFromRoles(string[] userNames, string[] roleNames) { if ((userNames != null) && (roleNames != null)) { foreach (String userName in userNames) { SiteUser siteUser = new SiteUser(userName); if (siteUser.UserId != Guid.Empty) { //foreach (String roleName in roleNames) //{ // Role role = new Role(roleName); // if (role.RoleId != Guid.Empty) // { // Role.RemoveUser(role.RoleId, siteUser.UserId); // } //} } } } }
private void CreateNewProfile() { SiteUser user = new SiteUser(); user.SerialKey = txtSerialKey.Text.Trim(); user.FirstName = txtFirstName.Text.Trim(); user.MiddleName = txtMiddleName.Text.Trim(); user.LastName = txtLastName.Text.Trim(); user.Email = txtEmail.Text.Trim(); user.IsResident = String.Compare(ddlIsResident.SelectedValue, "1", false) == 0 ? true : false; if (user.IsResident) user.ResidencyYear = Convert.ToInt32(ddlResidency.SelectedValue); user.IsActive = false; user.ActivationKey = Guid.NewGuid().ToString(); _UserManager.Save(user); //AppUtil.ShowMessage(divMessageBox, "Congratulations" SendEmailNotification(user); ShowConfirmationMessage(); }
private void DoRender(HtmlTextWriter writer) { if (!HttpContext.Current.Request.IsAuthenticated) { return; } SiteUser siteUser = SiteUtils.GetCurrentSiteUser(); if ((siteUser == null) || (siteUser.UserId <= -1)) { return; } if (CssClass.Length == 0) { CssClass = "sitelink"; } if (renderAsListItem) { writer.Write("<li class='" + listItemCSS + "'>"); } if ((useFirstLast) && (siteUser.FirstName.Length > 0) && (siteUser.LastName.Length > 0)) { if (firstLastFormat.Length == 0) { firstLastFormat = Resource.FirstLastFormat; } if (wrapInProfileLink) { writer.Write("<a class='" + CssClass + "' href='" + SiteUtils.GetNavigationSiteRoot() + "/Secure/UserProfile.aspx" + "'>" + string.Format(firstLastFormat, HttpUtility.HtmlEncode(siteUser.FirstName), HttpUtility.HtmlEncode(siteUser.LastName)) + "</a>"); } else if (wrapInAnchor) { writer.Write("<a class='" + CssClass + "' name='welcome'>" + string.Format(firstLastFormat, HttpUtility.HtmlEncode(siteUser.FirstName), HttpUtility.HtmlEncode(siteUser.LastName)) + "</a>"); } else { writer.Write("<span class='" + CssClass + "'>" + string.Format(firstLastFormat, HttpUtility.HtmlEncode(siteUser.FirstName), HttpUtility.HtmlEncode(siteUser.LastName)) + "</span>"); } } else { string format = Resource.WelcomeMessageFormat; if (overrideFormat.Length > 0) { format = overrideFormat; } if (wrapInProfileLink) { writer.Write("<a class='" + CssClass + "' href='" + SiteUtils.GetNavigationSiteRoot() + "/Secure/UserProfile.aspx" + "'>" + string.Format(format, HttpUtility.HtmlEncode(siteUser.Name)) + "</a>"); } else if (wrapInAnchor) { writer.Write("<a class='" + CssClass + "' name='welcome'>" + string.Format(format, HttpUtility.HtmlEncode(siteUser.Name)) + "</a>"); } else { writer.Write("<span class='" + CssClass + "'>" + string.Format(format, HttpUtility.HtmlEncode(siteUser.Name)) + "</span>"); } } if (UseRightSeparator) { writer.Write(" <span class='Accent'>|</span>"); } if (renderAsListItem) { writer.Write("</li>"); } }
public virtual async Task <UserLoginResult> TryRegister( RegisterViewModel model, ModelStateDictionary modelState, HttpContext httpContext, IHandleCustomRegistration customRegistration ) { var template = new LoginResultTemplate(); IUserContext userContext = null; var userName = !string.IsNullOrWhiteSpace(model.Username) ? model.Username : await _userManager.SuggestLoginNameFromEmail(_userManager.Site.Id, model.Email); var userNameAvailable = await _userManager.LoginIsAvailable(Guid.Empty, userName); if (!userNameAvailable) { userName = await _userManager.SuggestLoginNameFromEmail(_userManager.Site.Id, model.Email); } var user = new SiteUser { SiteId = _userManager.Site.Id, UserName = userName, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.DisplayName, LastLoginUtc = DateTime.UtcNow, AccountApproved = _userManager.Site.RequireApprovalBeforeLogin ? false : true }; await customRegistration.ProcessUserBeforeCreate(user, httpContext); if (model.DateOfBirth.HasValue) { user.DateOfBirth = model.DateOfBirth.Value; } if (!string.IsNullOrWhiteSpace(_userManager.Site.RegistrationAgreement)) { if (model.AgreeToTerms) { user.AgreementAcceptedUtc = DateTime.UtcNow; } } var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { template.User = user; template.IsNewUserRegistration = true; await _loginRulesProcessor.ProcessAccountLoginRules(template); } else { foreach (var error in result.Errors) { modelState.AddModelError(string.Empty, error.Description); } } if (template.RejectReasons.Count == 0 && user != null && template.SignInResult == SignInResult.Failed && // failed is initial state, could have been changed to lockedout result.Errors.Count <IdentityError>() == 0 ) { await _signInManager.SignInAsync(user, isPersistent : false); template.SignInResult = SignInResult.Success; } if (template.User != null) { userContext = new UserContext(template.User); } return(new UserLoginResult( template.SignInResult, template.RejectReasons, userContext, template.IsNewUserRegistration, template.MustAcceptTerms, template.NeedsAccountApproval, template.NeedsEmailConfirmation, template.EmailConfirmationToken, template.NeedsPhoneConfirmation )); }
private void PopulateControls() { if (module.ModuleId > -1) { ModuleDefinition moduleDefinition = new ModuleDefinition(module.ModuleDefId); lblFeatureName.Text = ResourceHelper.GetResourceString( moduleDefinition.ResourceFile, moduleDefinition.FeatureName); litFeatureSpecificSettingsTab.Text = string.Format(CultureInfo.InvariantCulture, Resource.FeatureSettingsTabFormat, lblFeatureName.Text); divCacheTimeout.Visible = (!WebConfigSettings.DisableContentCache && moduleDefinition.IsCacheable); PopulatePageList(); moduleTitle.Text = this.module.ModuleTitle; cacheTime.Text = this.module.CacheTime.ToString(); chkShowTitle.Checked = this.module.ShowTitle; chkHideFromAuth.Checked = this.module.HideFromAuthenticated; chkHideFromUnauth.Checked = this.module.HideFromUnauthenticated; chkAvailableForMyPage.Checked = this.module.AvailableForMyPage; chkAllowMultipleInstancesOnMyPage.Checked = this.module.AllowMultipleInstancesOnMyPage; if (this.isAdmin) { divEditUser.Visible = true; if (module.EditUserId > 0) { SiteUser siteUser = new SiteUser(this.siteSettings, module.EditUserId); this.scUser.Text = siteUser.Name; this.scUser.Value = siteUser.UserId.ToString(); } } if (this.divParentPage.Visible) { ListItem listItem = ddPages.Items.FindByValue(this.module.PageId.ToString()); if (listItem != null) { ddPages.ClearSelection(); listItem.Selected = true; } } if (module.Icon.Length > 0) { ddIcons.SelectedValue = module.Icon; imgIcon.Src = ImageSiteRoot + "/Data/SiteImages/FeatureIcons/" + module.Icon; } else { imgIcon.Src = ImageSiteRoot + "/Data/SiteImages/FeatureIcons/blank.gif"; } foreach (ListItem item in cblViewRoles.Items) { if ((this.module.ViewRoles.LastIndexOf(item.Value + ";")) > -1) { item.Selected = true; } } foreach (ListItem item in authEditRoles.Items) { if ((this.module.AuthorizedEditRoles.LastIndexOf(item.Value + ";")) > -1) { item.Selected = true; } } foreach (ListItem item in draftEditRoles.Items) { if ((this.module.DraftEditRoles.LastIndexOf(item.Value + ";")) > -1) { item.Selected = true; } } cblViewRoles.Enabled = isAdmin; authEditRoles.Enabled = isAdmin; } }
private void LoadSettings(HttpContext context) { siteSettings = CacheHelper.GetCurrentSiteSettings(); if (siteSettings == null) { return; } //this is only used to resolve the paths since httphandler does not have it built in page.AppRelativeVirtualPath = context.Request.AppRelativeCurrentExecutionFilePath; FileSystemProvider p = FileSystemManager.Providers[WebConfigSettings.FileSystemProvider]; if (p == null) { log.Error("Could not load file system provider " + WebConfigSettings.FileSystemProvider); return; } fileSystem = p.GetFileSystem(); if (fileSystem == null) { log.Error("Could not load file system from provider " + WebConfigSettings.FileSystemProvider); return; } rootDir = fileSystem.VirtualRoot.Replace("~", string.Empty); if ((WebUser.IsAdminOrContentAdmin) || (SiteUtils.UserIsSiteEditor())) { allowedExtensions = WebConfigSettings.AllowedUploadFileExtensions; canView = true; } else if (WebUser.IsInRoles(siteSettings.GeneralBrowseAndUploadRoles)) { allowedExtensions = WebConfigSettings.AllowedUploadFileExtensions; canView = true; } else if (WebUser.IsInRoles(siteSettings.UserFilesBrowseAndUploadRoles)) { currentUser = SiteUtils.GetCurrentSiteUser(); if (currentUser == null) { return; } allowedExtensions = WebConfigSettings.AllowedLessPriveledgedUserUploadFileExtensions; canView = true; } if (!canView) { return; } currentDir = rootDir; if (context.Request.Params.Get("dir") != null) { string requestedDir = context.Server.UrlDecode(context.Request.Params.Get("dir")); if (requestedDir == "/Pages/") { currentDir = requestedDir; } else { if (IsChildDirectory(context, requestedDir)) { currentDir = requestedDir;; } } } ResolveType(context); }
private void CreateUser(string windowsLiveId) { SiteUser newUser = new SiteUser(siteSettings); newUser.WindowsLiveId = windowsLiveId; newUser.Name = SecurityHelper.RemoveMarkup(txtUserName.Text); newUser.LoginName = newUser.Name; newUser.Email = txtEmail.Text; mojoMembershipProvider mojoMembership = (mojoMembershipProvider)Membership.Provider; newUser.Password = mojoMembership.EncodePassword(siteSettings, newUser, SiteUser.CreateRandomPassword(7, WebConfigSettings.PasswordGeneratorChars)); //newUser.Password = SiteUser.CreateRandomPassword(7); newUser.PasswordQuestion = Resource.ManageUsersDefaultSecurityQuestion; newUser.PasswordAnswer = Resource.ManageUsersDefaultSecurityAnswer; newUser.Save(); if (siteSettings.UseSecureRegistration) { newUser.SetRegistrationConfirmationGuid(Guid.NewGuid()); } mojoProfileConfiguration profileConfig = mojoProfileConfiguration.GetConfig(); // set default values first foreach (mojoProfilePropertyDefinition propertyDefinition in profileConfig.PropertyDefinitions) { #if !MONO // we are using the new TimeZoneInfo list but it doesn't work under Mono // this makes us skip the TimeOffsetHours setting from mojoProfile.config which is not used under windows if (propertyDefinition.Name == mojoProfilePropertyDefinition.TimeOffsetHoursKey) { continue; } #endif mojoProfilePropertyDefinition.SavePropertyDefault( newUser, propertyDefinition); } foreach (mojoProfilePropertyDefinition propertyDefinition in profileConfig.PropertyDefinitions) { #if !MONO // we are using the new TimeZoneInfo list but it doesn't work under Mono // this makes us skip the TimeOffsetHours setting from mojoProfile.config which is not used under windows if (propertyDefinition.Name == mojoProfilePropertyDefinition.TimeOffsetHoursKey) { continue; } #endif if ((propertyDefinition.RequiredForRegistration) || (propertyDefinition.ShowOnRegistration)) { mojoProfilePropertyDefinition.SaveProperty( newUser, pnlRequiredProfileProperties, propertyDefinition, timeOffset, timeZone); } } // track user ip address UserLocation userLocation = new UserLocation(newUser.UserGuid, SiteUtils.GetIP4Address()); userLocation.SiteGuid = siteSettings.SiteGuid; userLocation.Hostname = Page.Request.UserHostName; userLocation.Save(); UserRegisteredEventArgs u = new UserRegisteredEventArgs(newUser); OnUserRegistered(u); CacheHelper.ClearMembershipStatisticsCache(); NewsletterHelper.ClaimExistingSubscriptions(newUser); DoUserLogin(newUser); }
private PickerEntity GetPickerEntity(SiteUser user) { PickerEntity entity = CreatePickerEntity(); entity.Claim = new SPClaim(SiteClaimType, user.LoginName, SiteClaimValueType, SPOriginalIssuers.Format(SPOriginalIssuerType.TrustedProvider, ProviderDisplayName)); entity.Description = user.DisplayName; entity.DisplayText = user.DisplayName; entity.EntityData[PeopleEditorEntityDataKeys.AccountName] = user.LoginName; entity.EntityData[PeopleEditorEntityDataKeys.DisplayName] = user.DisplayName; entity.EntityType = SPClaimEntityTypes.User; entity.IsResolved = true; return entity; }
public static void SaveProperty( SiteUser siteUser, Panel parentControl, mojoProfilePropertyDefinition propertyDefinition, Double legacyTimeZoneOffset, TimeZoneInfo timeZone) { String controlID; Control control; if (propertyDefinition.ISettingControlSrc.Length > 0) { controlID = "isc" + propertyDefinition.Name; control = parentControl.FindControl(controlID); if (control != null) { siteUser.SetProperty( propertyDefinition.Name, ((ISettingControl)control).GetValue(), propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } else { switch (propertyDefinition.Type) { case "System.Boolean": controlID = "chk" + propertyDefinition.Name; control = parentControl.FindControl(controlID); if (control != null) { siteUser.SetProperty( propertyDefinition.Name, ((CheckBox)control).Checked, propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } break; case "System.DateTime": controlID = "dp" + propertyDefinition.Name; control = parentControl.FindControl(controlID); if (control != null) { DatePickerControl dp = (DatePickerControl)control; if (dp.Text.Length > 0) { DateTime dt; if (DateTime.TryParse( dp.Text, CultureInfo.CurrentCulture, DateTimeStyles.AdjustToUniversal, out dt)) { if (propertyDefinition.IncludeTimeForDate) { if (timeZone != null) { dt = dt.ToUtc(timeZone); } else { dt = dt.AddHours(-legacyTimeZoneOffset); } if (propertyDefinition.Name == "DateOfBirth") { siteUser.DateOfBirth = dt.Date; siteUser.Save(); } else { siteUser.SetProperty( propertyDefinition.Name, dt.ToString(), propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } else { if (propertyDefinition.Name == "DateOfBirth") { siteUser.DateOfBirth = dt.Date; siteUser.Save(); } else { siteUser.SetProperty( propertyDefinition.Name, dt.Date.ToShortDateString(), propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } } else { siteUser.SetProperty( propertyDefinition.Name, dp.Text, propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } else // blank { if (propertyDefinition.Name == "DateOfBirth") { siteUser.DateOfBirth = DateTime.MinValue; siteUser.Save(); } else { siteUser.SetProperty( propertyDefinition.Name, String.Empty, propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } } break; case "System.String": default: if (propertyDefinition.OptionList.Count > 0) { if (propertyDefinition.Type == "CheckboxList") { controlID = "cbl" + propertyDefinition.Name; control = parentControl.FindControl(controlID); if (control != null) { if (control is CheckBoxList) { CheckBoxList cbl = (CheckBoxList)control; siteUser.SetProperty( propertyDefinition.Name, cbl.Items.SelectedItemsToCommaSeparatedString(), propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } } else { controlID = "dd" + propertyDefinition.Name; control = parentControl.FindControl(controlID); if (control != null) { if (control is DropDownList) { DropDownList dd = (DropDownList)control; if (dd.SelectedIndex > -1) { siteUser.SetProperty( propertyDefinition.Name, dd.SelectedValue, propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } } } } else { controlID = "txt" + propertyDefinition.Name; control = parentControl.FindControl(controlID); if (control != null) { siteUser.SetProperty( propertyDefinition.Name, ((TextBox)control).Text, propertyDefinition.SerializeAs, propertyDefinition.LazyLoad); } } break; } } }
public static SiteUser GetCurrentUser(bool bypassAuthCheck) { if (HttpContext.Current == null) return null; if (bypassAuthCheck || (HttpContext.Current.Request.IsAuthenticated)) { if (HttpContext.Current.Items["CurrentUser"] != null) { try { return (SiteUser)HttpContext.Current.Items["CurrentUser"]; } catch { } } IUserBAL itemBAl = new UserBAL(); User item = itemBAl.GetUserByLoginName(HttpContext.Current.User.Identity.Name.Trim()); SiteUser siteUser = new SiteUser(); siteUser.UserId = item.UserGuid; siteUser.Name = item.UserName; siteUser.LoginName = item.UserID; if (siteUser.UserId != Guid.Empty) { HttpContext.Current.Items["CurrentUser"] = siteUser.ToString(); return siteUser; } } return null; }
/// <summary> /// this overload is preferred because it checks if the module represents an instance of the feature /// </summary> /// <param name="moduleId"></param> /// <param name="featureGuid"></param> /// <returns></returns> public bool UserCanEditModule(int moduleId, Guid featureGuid) { if (!Request.IsAuthenticated) { return(false); } if (WebUser.IsAdminOrContentAdmin) { return(true); } if (SiteUtils.UserIsSiteEditor()) { return(true); } if (CurrentPage == null) { return(false); } bool moduleFoundOnPage = false; foreach (Module m in CurrentPage.Modules) { if ( (m.ModuleId == moduleId) && ((featureGuid == Guid.Empty) || (m.FeatureGuid == featureGuid)) ) { moduleFoundOnPage = true; } } if (!moduleFoundOnPage) { return(false); } if (WebUser.IsInRoles(CurrentPage.EditRoles)) { return(true); } SiteUser currentUser = SiteUtils.GetCurrentSiteUser(); if (currentUser == null) { return(false); } foreach (Module m in CurrentPage.Modules) { if (m.ModuleId == moduleId) { if (m.EditUserId == currentUser.UserId) { return(true); } if (WebUser.IsInRoles(m.AuthorizedEditRoles)) { return(true); } } } return(false); }
public override bool DeleteUser(string userName, bool deleteAllRelatedData) { /* * Takes, as input, a user name and deletes that user from the membership data source. DeleteUser returns * true if the user was successfully deleted. Otherwise, it returns false. DeleteUser takes a third parameter-a Boolean * named deleteAllRelatedData-that specifies whether related data for that user should be deleted also. * If deleteAllRelatedData is true, DeleteUser should delete role data, profile data, and all other data associated * with that user. */ bool result = false; // we are ignoring deleteAllRelatedData // on purpose because whether to really delete or just flag as deleted // is determined by the siteSettings.ReallyDeleteUsers setting if (userName != null) { SiteUser siteUser = new SiteUser(userName); if (siteUser.UserId != Guid.Empty) { // just check IsDeleted = true //result = SiteUser.Delete(siteUser.UserId); } } return result; }
public bool UserCanOnlyEditModuleAsDraft(int moduleId, Guid featureGuid) { if (!Request.IsAuthenticated) { return(false); } if (WebUser.IsAdminOrContentAdmin) { return(false); } if (SiteUtils.UserIsSiteEditor()) { return(false); } if (!WebConfigSettings.EnableContentWorkflow) { return(false); } if (CurrentSite == null) { return(false); } if (!CurrentSite.EnableContentWorkflow) { return(false); } if (CurrentPage == null) { return(false); } bool moduleFoundOnPage = false; foreach (Module m in CurrentPage.Modules) { if ( (m.ModuleId == moduleId) && ((featureGuid == Guid.Empty) || (m.FeatureGuid == featureGuid)) ) { moduleFoundOnPage = true; } } if (!moduleFoundOnPage) { return(false); } if (WebUser.IsInRoles(CurrentPage.DraftEditOnlyRoles)) { return(true); } SiteUser currentUser = SiteUtils.GetCurrentSiteUser(); if (currentUser == null) { return(false); } foreach (Module m in CurrentPage.Modules) { if (m.ModuleId == moduleId) { if (WebUser.IsInRoles(m.DraftEditRoles)) { return(true); } } } return(false); }
public ProfileUpdatedEventArgs(SiteUser siteUser, bool updatedByAdmin) { _siteUser = siteUser; _updatedByAdmin = updatedByAdmin; }
public void InstallContent(Module module, string configInfo) { if (string.IsNullOrEmpty(configInfo)) { return; } SiteSettings siteSettings = new SiteSettings(module.SiteId); SiteUser admin = SiteUser.GetNewestUser(siteSettings); XmlDocument xml = new XmlDocument(); using (StreamReader stream = File.OpenText(HostingEnvironment.MapPath(configInfo))) { xml.LoadXml(stream.ReadToEnd()); } foreach (XmlNode node in xml.DocumentElement.ChildNodes) { if (node.Name == "feed") { XmlAttributeCollection feedAttributes = node.Attributes; RssFeed feed = new RssFeed(module.ModuleId); feed.ModuleId = module.ModuleId; feed.ModuleGuid = module.ModuleGuid; if (admin != null) { feed.UserId = admin.UserId; feed.UserGuid = admin.UserGuid; feed.LastModUserGuid = admin.UserGuid; } if (feedAttributes["feedName"] != null) { feed.Author = feedAttributes["feedName"].Value; } if (feedAttributes["webUrl"] != null) { feed.Url = feedAttributes["webUrl"].Value; } if (feedAttributes["feedUrl"] != null) { feed.RssUrl = feedAttributes["feedUrl"].Value; } if (feedAttributes["sortRank"] != null) { int sort = 500; if (int.TryParse(feedAttributes["sortRank"].Value, out sort)) { feed.SortRank = sort; } } feed.Save(); } if (node.Name == "moduleSetting") { XmlAttributeCollection settingAttributes = node.Attributes; if ((settingAttributes["settingKey"] != null) && (settingAttributes["settingKey"].Value.Length > 0)) { string key = settingAttributes["settingKey"].Value; string val = string.Empty; if (settingAttributes["settingValue"] != null) { val = settingAttributes["settingValue"].Value; } ModuleSettings.UpdateModuleSetting(module.ModuleGuid, module.ModuleId, key, val); } } } }
void btnUpload_Click(object sender, EventArgs e) { // as long as javascript is available this code should never execute // because the standard file input ir replaced by javascript and the file upload happens // at the service url /ImageGallery/upload.ashx // this is fallback implementation Module module = GetModule(moduleId, Gallery.FeatureGuid); if (module == null) { SiteUtils.RedirectToAccessDeniedPage(this); return; } SiteUser siteUser = SiteUtils.GetCurrentSiteUser(); try { if (uploader.HasFile) { string ext = Path.GetExtension(uploader.FileName); if (SiteUtils.IsAllowedUploadBrowseFile(ext, ".jpg|.gif|.png|.jpeg")) { GalleryImage galleryImage = new GalleryImage(this.moduleId); galleryImage.ModuleGuid = module.ModuleGuid; galleryImage.WebImageHeight = config.WebSizeHeight; galleryImage.WebImageWidth = config.WebSizeWidth; galleryImage.ThumbNailHeight = config.ThumbnailHeight; galleryImage.ThumbNailWidth = config.ThumbnailWidth; galleryImage.UploadUser = Context.User.Identity.Name; if (siteUser != null) { galleryImage.UserGuid = siteUser.UserGuid; } //string newFileName = Path.GetFileName(file.FileName).ToCleanFileName(WebConfigSettings.ForceLowerCaseForUploadedFiles); string newFileName = Path.GetFileName(uploader.FileName).ToCleanFileName(WebConfigSettings.ForceLowerCaseForUploadedFiles); string newImagePath = VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName); if (galleryImage.ImageFile == newFileName) { // an existing gallery image delete the old one fileSystem.DeleteFile(newImagePath); } else { // this is a new galleryImage instance, make sure we don't use the same file name as any other instance int i = 1; while (fileSystem.FileExists(VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName))) { newFileName = i.ToInvariantString() + newFileName; i += 1; } } newImagePath = VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName); using (Stream s = uploader.FileContent) { //fileSystem.SaveFile(newImagePath, s, uploader.FileContentType, true); fileSystem.SaveFile(newImagePath, s, IOHelper.GetMimeType(Path.GetExtension(ext).ToLower()), true); } galleryImage.ImageFile = newFileName; galleryImage.WebImageFile = newFileName; galleryImage.ThumbnailFile = newFileName; galleryImage.Save(); GalleryHelper.ProcessImage(galleryImage, fileSystem, imageFolderPath, uploader.FileName, config.ResizeBackgroundColor); } } WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl()); } catch (UnauthorizedAccessException ex) { lblError.Text = ex.Message; } catch (ArgumentException ex) { lblError.Text = ex.Message; } }
private void btnUpdate_Click(object sender, EventArgs e) { Page.Validate("feeds"); if (!Page.IsValid) { return; } RssFeed feed = new RssFeed(ModuleId, ItemId); if (feed.ModuleId != ModuleId) { SiteUtils.RedirectToAccessDeniedPage(this); return; } feed.ModuleId = ModuleId; feed.Author = txtAuthor.Text; feed.Url = txtWebSite.Text; feed.RssUrl = txtRssUrl.Text; feed.ImageUrl = txtImageUrl.Text; int sortRank = 500; int.TryParse(txtSortRank.Text, out sortRank); feed.SortRank = sortRank; SiteUser siteUser = SiteUtils.GetCurrentSiteUser(); if (siteUser == null) { return; } Module module = new Module(ModuleId); feed.ModuleGuid = module.ModuleGuid; feed.UserId = siteUser.UserId; feed.UserGuid = siteUser.UserGuid; feed.LastModUserGuid = siteUser.UserGuid; feed.PublishByDefault = chkPublishByDefault.Checked; if (feed.Save()) { CurrentPage.UpdateLastModifiedTime(); FeedCache.RefreshFeed( feed, ModuleId, module.ModuleGuid, config.MaxDaysOld, config.MaxEntriesPerFeed, config.EnableSelectivePublishing); String rssFriendlyUrl = "aggregator" + ModuleId.ToInvariantString() + "rss.aspx"; if (!FriendlyUrl.Exists(siteSettings.SiteId, rssFriendlyUrl)) { FriendlyUrl friendlyUrl = new FriendlyUrl(); friendlyUrl.SiteId = siteSettings.SiteId; friendlyUrl.SiteGuid = siteSettings.SiteGuid; friendlyUrl.Url = rssFriendlyUrl; friendlyUrl.RealUrl = "~/FeedManager/FeedAggregate.aspx?pageid=" + PageId.ToInvariantString() + "&mid=" + ModuleId.ToInvariantString(); friendlyUrl.Save(); } if (hdnReturnUrl.Value.Length > 0) { WebUtils.SetupRedirect(this, hdnReturnUrl.Value); return; } WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl()); } }
public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return RedirectToAction("Index", "Manage"); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return View("ExternalLoginFailure"); } var user = new SiteUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); return RedirectToLocal(returnUrl); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return View(model); }
private void btnUpdate_Click(object sender, EventArgs e) { if (forum == null) { forum = new Forum(forumId); } if (WebUser.IsInRoles(forum.RolesThatCanPost)) { if (Request.IsAuthenticated) { captcha.Enabled = false; pnlAntiSpam.Visible = false; } } else { SiteUtils.RedirectToAccessDeniedPage(this); return; } Page.Validate("Forum"); if (!Page.IsValid) { PopulateControls(); return; } else { if ((config.UseSpamBlockingForAnonymous) && (pnlAntiSpam.Visible) && (captcha.Enabled)) { if (!captcha.IsValid) { PopulateControls(); return; } } ForumThread thread; bool userIsAllowedToUpdateThisPost = false; if (threadId == -1) { //new thread thread = new ForumThread(); thread.ForumId = forumId; thread.IncludeInSiteMap = forum.IncludeInGoogleMap; thread.SetNoIndexMeta = forum.AddNoIndexMeta; } else { if (postId > -1) { thread = new ForumThread(threadId, postId); if (isModerator || (this.theUser.UserId == thread.PostUserId)) { userIsAllowedToUpdateThisPost = true; } if ((isModerator) && (divSortOrder.Visible)) { int sort = thread.PostSortOrder; int.TryParse(txtSortOrder.Text, out sort); thread.PostSortOrder = sort; } } else { thread = new ForumThread(threadId); } //existing thread but it does not belong to this forum if (forumId != thread.ForumId) { SiteUtils.RedirectToAccessDeniedPage(this); return; } } thread.ContentChanged += new ContentChangedEventHandler(thread_ContentChanged); thread.PostSubject = this.txtSubject.Text; thread.PostMessage = edMessage.Text; bool isNewPost = (thread.PostId == -1); SiteUser siteUser = null; if (Request.IsAuthenticated) { siteUser = SiteUtils.GetCurrentSiteUser(); if (siteUser != null) { thread.PostUserId = siteUser.UserId; } if (chkSubscribeToForum.Checked) { forum.Subscribe(siteUser.UserId); } else { thread.SubscribeUserToThread = this.chkNotifyOnReply.Checked; } } else { thread.PostUserId = -1; //guest } string threadViewUrl; if (ForumConfiguration.CombineUrlParams) { threadViewUrl = SiteRoot + "/Forums/Thread.aspx?pageid=" + pageId.ToInvariantString() + "&t=" + thread.ThreadId.ToInvariantString() + "~" + this.pageNumber.ToInvariantString(); } else { threadViewUrl = SiteRoot + "/Forums/Thread.aspx?thread=" + thread.ThreadId.ToInvariantString() + "&mid=" + moduleId.ToInvariantString() + "&pageid=" + pageId.ToInvariantString() + "&ItemID=" + forumId.ToInvariantString() + "&pagenumber=" + this.pageNumber.ToInvariantString(); } if ((thread.PostId == -1) || (userIsAllowedToUpdateThisPost)) { thread.Post(); CurrentPage.UpdateLastModifiedTime(); if (ForumConfiguration.CombineUrlParams) { threadViewUrl = SiteRoot + "/Forums/Thread.aspx?pageid=" + pageId.ToInvariantString() + "&t=" + thread.ThreadId.ToInvariantString() + "~" + pageNumber.ToInvariantString() + "#post" + thread.PostId.ToInvariantString(); } else { threadViewUrl = SiteRoot + "/Forums/Thread.aspx?thread=" + thread.ThreadId.ToInvariantString() + "&mid=" + moduleId.ToInvariantString() + "&pageid=" + pageId.ToInvariantString() + "&ItemID=" + forum.ItemId.ToInvariantString() + "&pagenumber=" + pageNumber.ToInvariantString() + "#post" + thread.PostId.ToInvariantString(); } if ((isNewPost) || (!config.SuppressNotificationOfPostEdits)) { bool notifyModeratorOnly = false; if (forum.RequireModForNotify) { notifyModeratorOnly = true; if (forum.AllowTrustedDirectNotify && (siteUser != null) && siteUser.Trusted) { notifyModeratorOnly = false; } } Module m = GetModule(moduleId, Forum.FeatureGuid); ForumNotification.NotifySubscribers( forum, thread, m, siteUser, siteSettings, config, SiteRoot, pageId, pageNumber, SiteUtils.GetDefaultCulture(), ForumConfiguration.GetSmtpSettings(), notifyModeratorOnly ); if (!notifyModeratorOnly) { thread.NotificationSent = true; thread.UpdatePost(); } } //String cacheDependencyKey = "Module-" + moduleId.ToInvariantString(); //CacheHelper.TouchCacheDependencyFile(cacheDependencyKey); CacheHelper.ClearModuleCache(moduleId); SiteUtils.QueueIndexing(); } Response.Redirect(threadViewUrl); } }
public override void UserRegisteredHandler(object sender, UserRegisteredEventArgs e) { //if (sender == null) return; if (e == null) { return; } if (e.SiteUser == null) { return; } if (!WebConfigSettings.NotifyAdminsOnNewUserRegistration) { return; } log.Debug("NotifyAdminUserRegisteredHandler called for new user " + e.SiteUser.Email); if (HttpContext.Current == null) { return; } //lookup admin users and send notification email with link to manage user SiteSettings siteSettings = CacheHelper.GetCurrentSiteSettings(); CultureInfo defaultCulture = ResourceHelper.GetDefaultCulture(); //Role adminRole = Role.GetRoleByName(siteSettings.SiteId, "Admins"); //if (adminRole == null) //{ // // TODO: log it? // return; //} //DataTable admins = SiteUser.GetRoleMembers(adminRole.RoleId); string subjectTemplate = ResourceHelper.GetMessageTemplate(defaultCulture, "NotifyAdminofNewUserRegistationSubject.config"); string textBodyTemplate = ResourceHelper.GetMessageTemplate(defaultCulture, "NotifyAdminofNewUserRegistationMessage.config"); string siteRoot = SiteUtils.GetNavigationSiteRoot(); SmtpSettings smtpSettings = SiteUtils.GetSmtpSettings(); List <string> adminEmails = SiteUser.GetEmailAddresses(siteSettings.SiteId, "Admins;"); //foreach (DataRow row in admins.Rows) foreach (string email in adminEmails) { if (WebConfigSettings.EmailAddressesToExcludeFromAdminNotifications.IndexOf(email, StringComparison.InvariantCultureIgnoreCase) > -1) { continue; } EmailMessageTask messageTask = new EmailMessageTask(smtpSettings); messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress; //messageTask.EmailTo = row["Email"].ToString(); messageTask.EmailTo = email; messageTask.Subject = string.Format( defaultCulture, subjectTemplate, e.SiteUser.Email, siteRoot ); string manageUserLink = siteRoot + "/Admin/ManageUsers.aspx?userid=" + e.SiteUser.UserId.ToString(CultureInfo.InvariantCulture); messageTask.TextBody = string.Format( defaultCulture, textBodyTemplate, siteSettings.SiteName, siteRoot, manageUserLink ); messageTask.SiteGuid = siteSettings.SiteGuid; messageTask.QueueTask(); } WebTaskManager.StartOrResumeTasks(); }
private void LoadSettings() { virtualRoot = WebUtils.GetApplicationRoot(); pageId = WebUtils.ParseInt32FromQueryString("pageid", -1); moduleId = WebUtils.ParseInt32FromQueryString("mid", -1); forumId = WebUtils.ParseInt32FromQueryString("forumid", -1); threadId = WebUtils.ParseInt32FromQueryString("thread", -1); postId = WebUtils.ParseInt32FromQueryString("postid", -1); pageNumber = WebUtils.ParseInt32FromQueryString("pagenumber", 1); lnkCancel.NavigateUrl = SiteUtils.GetCurrentPageUrl(); timeOffset = SiteUtils.GetUserTimeOffset(); timeZone = SiteUtils.GetUserTimeZone(); isModerator = UserCanEditModule(moduleId, Forum.FeatureGuid); moduleSettings = ModuleSettings.GetModuleSettings(moduleId); config = new ForumConfiguration(moduleSettings); postList.Config = config; postList.PageId = pageId; postList.ModuleId = moduleId; postList.ItemId = forumId; postList.ThreadId = threadId; postList.PageNumber = pageNumber; postList.IsAdmin = WebUser.IsAdmin; postList.IsCommerceReportViewer = WebUser.IsInRoles(siteSettings.CommerceReportViewRoles); postList.SiteRoot = SiteRoot; postList.ImageSiteRoot = ImageSiteRoot; postList.SiteSettings = siteSettings; postList.IsEditable = false; postList.IsSubscribedToForum = true; postListAlt.Config = config; postListAlt.PageId = pageId; postListAlt.ModuleId = moduleId; postListAlt.ItemId = forumId; postListAlt.ThreadId = threadId; postListAlt.PageNumber = pageNumber; postListAlt.IsAdmin = postList.IsAdmin; postListAlt.IsCommerceReportViewer = WebUser.IsInRoles(siteSettings.CommerceReportViewRoles); postListAlt.SiteRoot = SiteRoot; postListAlt.ImageSiteRoot = ImageSiteRoot; postListAlt.SiteSettings = siteSettings; postListAlt.IsEditable = false; postListAlt.IsSubscribedToForum = true; if (Request.IsAuthenticated) { theUser = SiteUtils.GetCurrentSiteUser(); if (theUser != null) { if (forumId > -1) { isSubscribedToForum = Forum.IsSubscribed(forumId, theUser.UserId); } if (threadId > -1) { isSubscribedToThread = ForumThread.IsSubscribed(threadId, theUser.UserId); } } } if (isModerator) { edMessage.WebEditor.ToolBar = ToolBar.FullWithTemplates; } else if ((Request.IsAuthenticated) && (WebUser.IsInRoles(siteSettings.UserFilesBrowseAndUploadRoles))) { edMessage.WebEditor.ToolBar = ToolBar.ForumWithImages; } else { edMessage.WebEditor.ToolBar = ToolBar.Forum; } edMessage.WebEditor.SetFocusOnStart = true; edMessage.WebEditor.Height = Unit.Parse("350px"); if (config.UseSpamBlockingForAnonymous) { captcha.ProviderName = siteSettings.CaptchaProvider; captcha.Captcha.ControlID = "captcha" + moduleId.ToString(CultureInfo.InvariantCulture); captcha.RecaptchaPrivateKey = siteSettings.RecaptchaPrivateKey; captcha.RecaptchaPublicKey = siteSettings.RecaptchaPublicKey; } forum = new Forum(forumId); if (displaySettings.UseAltPostList) { postList.Visible = false; postListAlt.Visible = true; } AddClassToBody("editforumpost"); }
public async Task <IActionResult> Register(RegisterViewModel model) { ViewData["Title"] = sr["Register"]; if ((Site.CaptchaOnRegistration) && (Site.RecaptchaPublicKey.Length > 0)) { model.RecaptchaSiteKey = Site.RecaptchaPublicKey; } model.RegistrationPreamble = Site.RegistrationPreamble; model.RegistrationAgreement = Site.RegistrationAgreement; bool isValid = ModelState.IsValid; if (isValid) { if ((Site.CaptchaOnRegistration) && (Site.RecaptchaPublicKey.Length > 0)) { string recpatchaSecretKey = Site.RecaptchaPrivateKey; var captchaResponse = await this.ValidateRecaptcha(Request, recpatchaSecretKey); if (!captchaResponse.Success) { //if (captchaResponse.ErrorCodes.Count <= 0) //{ // return View(model); //} ////TODO: log these errors rather than show them in the ui //var error = captchaResponse.ErrorCodes[0].ToLower(); //switch (error) //{ // case ("missing-input-secret"): // ModelState.AddModelError("recaptchaerror", "The secret parameter is missing."); // break; // case ("invalid-input-secret"): // ModelState.AddModelError("recaptchaerror", "The secret parameter is invalid or malformed."); // break; // case ("missing-input-response"): // ModelState.AddModelError("recaptchaerror", "The response parameter is missing."); // break; // case ("invalid-input-response"): // ModelState.AddModelError("recaptchaerror", "The response parameter is invalid or malformed."); // break; // default: // ModelState.AddModelError("recaptchaerror", "Error occured. Please try again"); // break; //} ModelState.AddModelError("recaptchaerror", "reCAPTCHA Error occured. Please try again"); isValid = false; } } //if (Site.RegistrationAgreement.Length > 0) //{ // if (!model.AgreeToTerms) // { // ModelState.AddModelError("agreementerror", "You must agree to the terms"); // isValid = false; // } //} if (!isValid) { return(View(model)); } var user = new SiteUser { UserName = model.LoginName.Length > 0? model.LoginName : model.Email.Replace("@", string.Empty).Replace(".", string.Empty), Email = model.Email, FirstName = model.FirstName, LastName = model.LastName, DisplayName = model.DisplayName, AccountApproved = Site.RequireApprovalBeforeLogin ? false : true }; if (model.DateOfBirth.HasValue) { user.DateOfBirth = model.DateOfBirth.Value; } var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { await ipAddressTracker.TackUserIpAddress(Site.Id, user.Id); if (Site.RequireConfirmedEmail) // require email confirmation { var code = await userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Action(new UrlActionContext { Action = "ConfirmEmail", Controller = "Account", Values = new { userId = user.Id.ToString(), code = code }, Protocol = HttpContext.Request.Scheme }); emailSender.SendAccountConfirmationEmailAsync( Site, model.Email, sr["Confirm your account"], callbackUrl).Forget(); if (this.SessionIsAvailable()) { this.AlertSuccess(sr["Please check your email inbox, we just sent you a link that you need to click to confirm your account"], true); return(Redirect("/")); } else { return(RedirectToAction("EmailConfirmationRequired", new { userId = user.Id, didSend = true })); } } else { if (Site.RequireApprovalBeforeLogin) { emailSender.AccountPendingApprovalAdminNotification(Site, user).Forget(); return(RedirectToAction("PendingApproval", new { userId = user.Id, didSend = true })); } else { await signInManager.SignInAsync(user, isPersistent : false); //return Redirect("/"); return(this.RedirectToSiteRoot(Site)); } } } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
void btnSave_Click(object sender, EventArgs e) { bool isExists = false; string qLanguage = ddLang.GetValue().Trim(); isExists = Quran.Exists(siteSettings.SiteId, this.quranID, qLanguage, this.txtTitle.Text.Trim()); if (isExists) { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.TitleExists; return; } if (this.txtTitle.Text.Trim().Length < 1) { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.TitleRequired; return; } string tmpEditorValue = string.Empty; tmpEditorValue = Regex.Replace((edDescription.Text).ToString(), @"<[^>]*>", String.Empty).Replace("\r\n", String.Empty).Trim(); if (tmpEditorValue.Length < 1) { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.QuranDescriptionRequired; return; } if (ddLang.GetValue() == "na") { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.QuranLanguageRequired; return; } int siteid = siteSettings.SiteId; currentUser = SiteUtils.GetCurrentSiteUser(); Quran quran = new Quran(siteid, quranID); quran.QuranID = this.quranID; quran.Title = SecurityHelper.RemoveMarkup(this.txtTitle.Text); quran.IsActive = bool.Parse(this.cbIsActive.Checked.ToString()); quran.IsDefault = bool.Parse(this.cbIsDefault.Checked.ToString()); quran.Description = this.edDescription.Text; quran.TRanslatorDetUrl = Regex.Replace((edTRanslatorDetUrl.Text).ToString(), @"<[^>]*>", String.Empty).Replace("\r\n", String.Empty).Trim(); quran.TranslationSrc = txtTranslationSrc.Text + ""; quran.SiteId = siteid; quran.CreatedByUserId = currentUser.UserId; quran.QLanguage = qLanguage; //quran.SuraCount = lblSuraCount.Text; bool res = quran.Save(); if (res == true) { string addDate = String.Format(DateTime.Now.ToString(), "mm dd yyyy"); log.Info("user " + currentUser.Name + " Added Quran Version : " + quran.Title + " at: " + addDate); if (hdnFromWhere.Value.Contains("?")) { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "&st=ok"); } else { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "?st=ok"); } } else { if (hdnFromWhere.Value.Contains("?")) { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "&st=no"); } else { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "?st=no"); } } }
public void SaveCurrentUser(SiteUser obj) { obj.Save(); SessionObject.CurrentSiteUser = obj; }
private int Save() { Page.Validate("Author"); if (!Page.IsValid) { return(-1); } try { author.LinkFacebook = txtfb.Text; author.LinkInstagram = txtinstagram.Text; author.LinkPinterest = txtpinterest.Text; author.LinkTwitter = txttwinter.Text; author.Name = txtFullName.Text; SiteUser temp = new SiteUser(siteSettings, author.UserID); temp.Signature = editDescription.Text; if (fileImage.UploadedFiles.Count > 0) { imageFolderPath = AuthorHepper.MediaFolderPath(siteSettings.SiteId, author.UserID); AuthorHepper.VerifyAuthorFolders(fileSystem, imageFolderPath); foreach (UploadedFile file in fileImage.UploadedFiles) { string ext = file.GetExtension(); if (SiteUtils.IsAllowedUploadBrowseFile(ext, WebConfigSettings.ImageFileExtensions)) { ContentMedia media = new ContentMedia(); media.SiteGuid = siteSettings.SiteGuid; //image.Title = txtImageTitle.Text; media.DisplayOrder = 0; string newFileName = file.FileName.ToCleanFileName(WebConfigSettings.ForceLowerCaseForUploadedFiles); string newImagePath = VirtualPathUtility.Combine(imageFolderPath, newFileName); if (media.MediaFile == newFileName) { // an existing image delete the old one fileSystem.DeleteFile(newImagePath); } else { // this is a new newsImage instance, make sure we don't use the same file name as any other instance int i = 1; while (fileSystem.FileExists(VirtualPathUtility.Combine(imageFolderPath, newFileName))) { newFileName = i.ToInvariantString() + newFileName; i += 1; } } newImagePath = VirtualPathUtility.Combine(imageFolderPath, newFileName); file.SaveAs(Server.MapPath(newImagePath)); media.MediaFile = newFileName; media.ThumbnailFile = newFileName; author.Avatar = newFileName; media.Save(); AuthorHepper.ProcessImage(media, fileSystem, imageFolderPath, file.FileName); } } } if (temp.Save() && author.Save()) { ImageAvatar.ImageUrl = AuthorHepper.GetAvatarAuthor(siteSettings.SiteId, author.UserID); LogActivity.Write("Update Author", author.Name); message.SuccessMessage = ResourceHelper.GetResourceString("CustomResources", "UpdateAuthorSuccess"); } } catch (Exception ex) { log.Error(ex.Message); } return(author.AuthorID); }
//public static bool IsNotAllowedToEditModuleSettings //{ // get // { // if (!HttpContext.Current.Request.IsAuthenticated) return true; // if (IsAdmin) { return false; } // if (IsContentAdmin) { return false; } // if (ConfigurationManager.AppSettings["RolesNotAllowedToEditModuleSettings"] != null) // { // string forbiddenRoles = ConfigurationManager.AppSettings["RolesNotAllowedToEditModuleSettings"]; // if (!string.IsNullOrEmpty(forbiddenRoles)) // { // return IsInRoles(forbiddenRoles); // } // } // return true; // } //} public static bool HasEditPermissions(int siteId, int moduleId, int pageId) { if (HttpContext.Current == null || HttpContext.Current.User == null) return false; if (!HttpContext.Current.Request.IsAuthenticated) return false; if (IsAdmin || IsContentAdmin) return true; Module module = new Module(moduleId, pageId); PageSettings pageSettings = new PageSettings(siteId, module.PageId); if (pageSettings == null) return false; if (pageSettings.PageId < 0) return false; if (IsInRoles(pageSettings.EditRoles) || IsInRoles(module.AuthorizedEditRoles)) { return true; } if (module.EditUserId > 0) { SiteSettings siteSettings = (SiteSettings)HttpContext.Current.Items["SiteSettings"]; SiteUser siteUser = new SiteUser(siteSettings, HttpContext.Current.User.Identity.Name); if (module.EditUserId == siteUser.UserId) { return true; } } return false; }
private void LoadSettings() { currentUser = SiteUtils.GetCurrentSiteUser(); siteSettings = CacheHelper.GetCurrentSiteSettings(); }
protected override void FillSearch(Uri context, string[] entityTypes, string searchPattern, string hierarchyNodeID, int maxCount, SPProviderHierarchyTree searchTree) { if (!EntityTypesContain(entityTypes, SPClaimEntityTypes.FormsRole)) { return; } var user = new SiteUser() { LoginName = searchPattern, DisplayName = searchPattern }; PickerEntity entity = GetPickerEntity(user); searchTree.AddEntity(entity); }
public async Task OnGetAsync() { SiteUser user = await _userManager.GetUserAsync(User); Quotations = await _context.Quotations.Where(q => q.User == user).ToListAsync(); }
protected override void FillResolve(Uri context, string[] entityTypes, string resolveInput, List<PickerEntity> resolved) { var user = new SiteUser() { LoginName = resolveInput, DisplayName = resolveInput }; if (null != user) { PickerEntity entity = GetPickerEntity(user); resolved.Add(entity); } }
void application_AuthenticateRequest(object sender, EventArgs e) { //if (debugLog) log.Debug("AuthHandlerHttpModule Application_AuthenticateRequest"); if (sender == null) { return; } HttpApplication app = (HttpApplication)sender; if (app.Request == null) { return; } if (!app.Request.IsAuthenticated) { return; } if (WebUtils.IsRequestForStaticFile(app.Request.Path)) { return; } if (app.Request.Path.ContainsCaseInsensitive(".ashx")) { return; } if (app.Request.Path.ContainsCaseInsensitive(".axd")) { return; } if (app.Request.Path.ContainsCaseInsensitive("setup/default.aspx")) { return; } //if (debugLog) log.Debug("IsAuthenticated == true"); SiteSettings siteSettings; try { siteSettings = CacheHelper.GetCurrentSiteSettings(); } catch (System.Data.Common.DbException ex) { // can happen during upgrades log.Error(ex); return; } catch (InvalidOperationException ex) { log.Error(ex); return; } catch (Exception ex) { // hate to trap System.Exception but SqlCeException doe snot inherit from DbException as it should if (DatabaseHelper.DBPlatform() != "SqlCe") { throw; } log.Error(ex); return; } bool useFolderForSiteDetection = WebConfigSettings.UseFolderBasedMultiTenants; // Added by Haluk Eryuksel - 2006-01-23 // support for Windows authentication if ( (app.User.Identity.AuthenticationType == "NTLM") || (app.User.Identity.AuthenticationType == "Negotiate") // || ( Context.User.Identity.AuthenticationType == "Windows" ) ) { //Added by Benedict Chan - 2008-08-05 //Added Cookie here so that we don't have to check the users in every page, also to authenticate under NTLM with "useFolderForSiteDetection == true" string cookieName = "siteguid" + siteSettings.SiteGuid; if (!CookieHelper.CookieExists(cookieName)) { bool existsInDB; existsInDB = SiteUser.LoginExistsInDB(siteSettings.SiteId, app.Context.User.Identity.Name); if (!existsInDB) { SiteUser u = new SiteUser(siteSettings); u.Name = app.Context.User.Identity.Name; u.LoginName = app.Context.User.Identity.Name; u.Email = GuessEmailAddress(u.Name); u.Password = SiteUser.CreateRandomPassword(7, WebConfigSettings.PasswordGeneratorChars); mojoMembershipProvider m = Membership.Provider as mojoMembershipProvider; if (m != null) { u.Password = m.EncodePassword(siteSettings, u, u.Password); } u.Save(); NewsletterHelper.ClaimExistingSubscriptions(u); UserRegisteredEventArgs args = new UserRegisteredEventArgs(u); OnUserRegistered(args); } SiteUser siteUser = new SiteUser(siteSettings, app.Context.User.Identity.Name); CookieHelper.SetCookie(cookieName, siteUser.UserGuid.ToString(), true); //Copied logic from SiteLogin.cs Since we will skip them if we use NTLM if (siteUser.UserId > -1 && siteSettings.AllowUserSkins && siteUser.Skin.Length > 0) { SiteUtils.SetSkinCookie(siteUser); } // track user ip address try { UserLocation userLocation = new UserLocation(siteUser.UserGuid, SiteUtils.GetIP4Address()); userLocation.SiteGuid = siteSettings.SiteGuid; userLocation.Hostname = app.Request.UserHostName; userLocation.Save(); log.Info("Set UserLocation : " + app.Request.UserHostName + ":" + SiteUtils.GetIP4Address()); } catch (Exception ex) { log.Error(SiteUtils.GetIP4Address(), ex); } } //End-Added by Benedict Chan } // End-Added by Haluk Eryuksel if ((useFolderForSiteDetection) && (!WebConfigSettings.UseRelatedSiteMode)) { // replace GenericPrincipal with custom one //string roles = string.Empty; if (!(app.Context.User is mojoIdentity)) { app.Context.User = new mojoPrincipal(app.Context.User); } } }
/// <summary> /// There are no comments for SiteUser in the schema. /// </summary> public void AddToSiteUser(SiteUser siteUser) { base.AddObject("SiteUser", siteUser); }
public UserPreDeleteEventArgs(SiteUser siteUser, bool flaggedAsDeletedOnly) { _siteUser = siteUser; _flaggedAsDeletedOnly = flaggedAsDeletedOnly; }
private MembershipUser CreateMembershipUserFromSiteUser(SiteUser siteUser) { if ((siteUser == null) || (siteUser.UserId == Guid.Empty)) return null; return new MembershipUser( this.name, siteUser.LoginName, siteUser.UserId, siteUser.Email, "", siteUser.Comment, true, siteUser.IsLockedOut, siteUser.DateCreated, siteUser.LastLoginDate, siteUser.LastActivityDate, siteUser.LastPasswordChangedDate, siteUser.LastLockoutDate); }
void btnSave_Click(object sender, EventArgs e) { bool isExists = false; isExists = QuranSura.Exists(siteSettings.SiteId, this.quranID, this.suraID, this.txtTitle.Text.Trim()); if (isExists) { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.TitleExists; return; } int suraorder = -1; if (ddLang.GetValue().Trim() == "ar") { suraorder = int.Parse(txtSortOrder.Text.ToString()); } else { suraorder = int.Parse(ddSelSura.SelectedItem.Value.ToString()); } isExists = QuranSura.OrderExists(siteSettings.SiteId, this.quranID, this.suraID, suraorder); if (isExists) { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.SuraOrderExists; return; } if (this.txtTitle.Text.Trim().Length < 1) { lblmessage.Visible = true; lblmessage.Text = Resources.iQuranMessagesResources.TitleRequired; return; } int siteid = siteSettings.SiteId; currentUser = SiteUtils.GetCurrentSiteUser(); QuranSura sura = new QuranSura(siteid, suraID); sura.SuraID = this.suraID; sura.SiteID = siteid; sura.QuranID = this.quranID; sura.Title = SecurityHelper.RemoveMarkup(this.txtTitle.Text); sura.Place = ddPlace.SelectedItem.Value.Trim(); sura.IsActive = bool.Parse(this.cbIsActive.Checked.ToString()); sura.CreatedByUserId = currentUser.UserId; if (ddLang.GetValue().Trim() == "ar") { sura.SuraOrder = int.Parse(txtSortOrder.Text.ToString()); } else { sura.SuraOrder = int.Parse(ddSelSura.SelectedItem.Value.ToString()); } bool res = sura.Save(); if (res == true) { string addDate = String.Format(DateTime.Now.ToString(), "mm dd yyyy"); log.Info("user " + currentUser.Name + " Added Sura : " + sura.Title + " at: " + addDate); if (hdnFromWhere.Value.Contains("?")) { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "&st=ok"); } else { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "?st=ok"); } } else { if (hdnFromWhere.Value.Contains("?")) { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "&st=no"); } else { WebUtils.SetupRedirect(this, hdnFromWhere.Value + "?st=no"); } } }
public override MembershipUser CreateUser( string userName, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) { /* * Takes, as input, a user name, password, e-mail address, and other information and adds * a new * user to the membership data source. CreateUser returns a MembershipUser object * representing the * newly created user. It also accepts an out parameter that returns a * MembershipCreateStatus value indicating whether the user was successfully created or, * if the user * was not created, the reason why. If the user was not created, CreateUser returns null. * Before creating a new user, * CreateUser calls the provider's virtual OnValidatingPassword method to validate the * supplied password. * It then creates the user or cancels the action based on the outcome of the call. */ if (String.IsNullOrEmpty(userName) || userName.Length > LoginnameMaxlength) { status = MembershipCreateStatus.InvalidUserName; return null; } //if (String.IsNullOrEmpty(email) || email.Length > EmailMaxlength) //{ // status = MembershipCreateStatus.InvalidEmail; // return null; //} if (String.IsNullOrEmpty(password)) { status = MembershipCreateStatus.InvalidPassword; return null; } //if (SiteUser.EmailExistsInDB(email)) //{ // status = MembershipCreateStatus.DuplicateEmail; // return null; //} //if (SiteUser.LoginExistsInDB(userName)) //{ // status = MembershipCreateStatus.DuplicateUserName; // return null; //} if (password.Length < MinRequiredPasswordLength) { status = MembershipCreateStatus.InvalidPassword; return null; } int nonAlphaNumericCharactersUsedCount = 0; for (int i = 0; i < password.Length; i++) { if (!char.IsLetterOrDigit(password, i)) { nonAlphaNumericCharactersUsedCount++; } } if (nonAlphaNumericCharactersUsedCount < MinRequiredNonAlphanumericCharacters) { status = MembershipCreateStatus.InvalidPassword; return null; } if (PasswordStrengthRegularExpression.Length > 0) { if (!Regex.IsMatch(password, PasswordStrengthRegularExpression)) { status = MembershipCreateStatus.InvalidPassword; return null; } } ValidatePasswordEventArgs e = new ValidatePasswordEventArgs(userName, password, true); this.OnValidatingPassword(e); if (e.Cancel) { status = MembershipCreateStatus.InvalidPassword; return null; } password = EncodePassword(password, PasswordFormat); SiteUser siteUser = new SiteUser(); siteUser.SiteId = Guid.Parse("cd348ff8-00c2-496b-8a65-5e78201f7780"); siteUser.LoginName = userName; siteUser.Password = password; siteUser.Name = name; siteUser.Email = email; bool created = false;// siteUser.Save(); //Tao tai khoan moi cho nay if (created) { //Role.AddUserToDefaultRoles(siteUser); status = MembershipCreateStatus.Success; return CreateMembershipUserFromSiteUser(siteUser); } else { status = MembershipCreateStatus.UserRejected; return null; } }
void btnSave_Click(object sender, EventArgs e) { string paneName = ddPaneNames.SelectedValue; DateTime beginDate = DateTime.UtcNow; DateTime endDate = DateTime.MinValue; //Boolean beginDateInvalid = false; if (!DateTime.TryParse(dpBeginDate.Text, out beginDate)) { //beginDateInvalid = true; } if (dpEndDate.Text.Length > 0) { if (!DateTime.TryParse(dpEndDate.Text, out endDate)) { endDate = DateTime.MinValue; } } else { endDate = DateTime.MinValue; } if (timeZone != null) { beginDate = beginDate.ToUtc(timeZone); if (endDate != DateTime.MinValue) { endDate = endDate.ToUtc(timeZone); } } else { beginDate = beginDate.AddHours(-timeOffset); if (endDate != DateTime.MinValue) { endDate = endDate.AddHours(-timeOffset); } } int moduleOrder = 1; int.TryParse(txtModuleOrder.Text, NumberStyles.Integer, CultureInfo.InvariantCulture, out moduleOrder); if (chkPublished.Checked) { Module.Publish( currentPage.PageGuid, currentModule.ModuleGuid, currentModule.ModuleId, pageId, paneName, moduleOrder, beginDate, endDate); } else { if (WebConfigSettings.LogIpAddressForContentDeletions) { Module m = new Module(moduleId); PageSettings contentPage = new PageSettings(CurrentSite.SiteId, pageId); string userName = string.Empty; SiteUser currentUser = SiteUtils.GetCurrentSiteUser(); if (currentUser != null) { userName = currentUser.Name; } log.Info("user " + userName + " removed module " + m.ModuleTitle + " from page " + contentPage.PageName + " from ip address " + SiteUtils.GetIP4Address()); } Module.DeleteModuleInstance(moduleId, pageId); } // rebuild page search index currentPage.PageIndex = CurrentPage.PageIndex; mojoPortal.SearchIndex.IndexHelper.RebuildPageIndexAsync(currentPage); pnlUpdate.Visible = false; pnlFinished.Visible = true; }
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) { /* * Takes, as input, a user name or user ID (the method is overloaded) and a Boolean value * indicating whether to update the user's LastActivityDate to show that the user is currently online. * GetUser returns a MembershipUser object representing the specified user. If the user name or * user ID is invalid (that is, if it doesn't represent a registered user) GetUser returns null (Nothing in Visual Basic). */ if (providerUserKey != null) { SiteUser siteUser = null; if (providerUserKey is Guid) { siteUser = new SiteUser((Guid)providerUserKey); if (siteUser.UserId != Guid.Empty) { if (userIsOnline) { //siteUser.UpdateLastActivityTime(); } return this.CreateMembershipUserFromSiteUser(siteUser); } } } return null; }
private void LoadSettings() { config = new SharedFilesConfiguration(Settings); EditContentImage = WebConfigSettings.EditContentImage; lblError.Text = String.Empty; FileSystemProvider p = FileSystemManager.Providers[WebConfigSettings.FileSystemProvider]; if (p == null) { return; } fileSystem = p.GetFileSystem(); if (fileSystem == null) { return; } siteUser = SiteUtils.GetCurrentSiteUser(); newWindowMarkup = displaySettings.NewWindowLinkMarkup; if (BrowserHelper.IsIE()) { //this is a needed hack because IE 8 doesn't work correctly with window.open // a "security feature" of IE 8 // unfortunately this is not valid xhtml to use target but it works in IE newWindowMarkup = displaySettings.IeNewWindowLinkMarkup; } if (!SharedFilesConfiguration.DownloadLinksOpenNewWindow) { newWindowMarkup = string.Empty; } TimeOffset = SiteUtils.GetUserTimeOffset(); timeZone = SiteUtils.GetUserTimeZone(); fileVirtualBasePath = $"~/Data/Sites/{siteSettings.SiteId.ToInvariantString()}/SharedFiles/"; try { // this keeps the action from changing during ajax postback in folder based sites SiteUtils.SetFormAction(Page, Request.RawUrl); } catch (MissingMethodException) { //this method was introduced in .NET 3.5 SP1 } btnUpload2.Visible = IsEditable; uploader.Visible = IsEditable; uploader.MaxFilesAllowed = SharedFilesConfiguration.MaxFilesToUploadAtOnce; uploader.ServiceUrl = $"{SiteRoot}/SharedFiles/upload.ashx?pageid={PageId.ToInvariantString()}&mid={ModuleId.ToInvariantString()}"; uploader.FormFieldClientId = hdnCurrentFolderId.ClientID; uploader.UploadButtonClientId = btnUpload2.ClientID; if (IsEditable) { string refreshFunction = $"function refresh{ModuleId.ToInvariantString()}() {{ $('#{btnRefresh.ClientID}').click(); }};"; uploader.UploadCompleteCallback = $"refresh{ModuleId.ToInvariantString()}"; ScriptManager.RegisterClientScriptBlock( this, GetType(), $"refresh{ModuleId.ToInvariantString()}", refreshFunction, true ); } if (dgFile.TableCssClass.Contains("jqtable") && !WebConfigSettings.DisablejQuery) { string script = $@" function setupJTable{ModuleId.ToInvariantString()}() {{ $('#{dgFile.ClientID} th').each(function() {{ $(this).addClass('ui-state-default'); }}); $('table.jqtable td').each(function() {{ $(this).addClass('ui-widget-content'); }}); $('table.jqtable tr').hover( function() {{ $(this).children('td').addClass('ui-state-hover'); }}, function() {{ $(this).children('td').removeClass('ui-state-hover'); }} ); $('table.jqtable tr').on('click', function() {{ $(this).children('td').toggleClass('ui-state-highlight'); }}); }}; Sys.WebForms.PageRequestManager.getInstance().add_endRequest(setupJTable{ModuleId.ToInvariantString()});"; ScriptManager.RegisterStartupScript( this, GetType(), $"jTable{ModuleId.ToInvariantString()}", script, true ); } trObjectCount.Visible = config.ShowObjectCount; if (config.InstanceCssClass.Length > 0) { pnlOuterWrap.SetOrAppendCss(config.InstanceCssClass); } if (WebConfigSettings.ForceLegacyFileUpload) { ScriptManager.GetCurrent(Page).RegisterPostBackControl(btnUpload2); } }
public override void UpdateUser(MembershipUser user) { /* Takes, as input, a MembershipUser object representing a registered user and updates the * information stored for that user in the membership data source. If any of the input submitted in the MembershipUser * object is not valid, UpdateUser throws a ProviderException. Note that UpdateUser is not obligated to allow all * the data that can be encapsulated in a MembershipUser object to be updated in the data source. */ if (user != null) { SiteUser siteUser; siteUser = new SiteUser(user.UserName); if (siteUser.UserId != Guid.Empty) { //siteUser.Comment = user.Comment; siteUser.Email = user.Email; siteUser.LoginName = user.UserName; //siteUser.ProfileApproved = user.IsApproved; //if ( // (user.PasswordQuestion != null) // &&(user.PasswordQuestion.Length > 0) // &&(user.PasswordQuestion != siteUser.PasswordQuestion) // ) //{ // siteUser.PasswordQuestion = user.PasswordQuestion; //} // siteUser.Save(); if (user.LastActivityDate > siteUser.LastActivityDate) { //siteUser.UpdateLastActivityTime(); //cập nhật sau } } } }
private void DoSubscribe(LetterInfo letter, string email) { LetterSubscriber s = subscriptions.Fetch(siteSettings.SiteGuid, letter.LetterInfoGuid, email); bool needToSendVerification = false; if (s == null) { s = new LetterSubscriber(); s.SiteGuid = siteSettings.SiteGuid; s.EmailAddress = email; s.LetterInfoGuid = letter.LetterInfoGuid; if (showFormatOptions) { s.UseHtml = rbHtmlFormat.Checked; } else { s.UseHtml = htmlIsDefault; } if ((currentUser != null) && (string.Equals(currentUser.Email, email, StringComparison.InvariantCultureIgnoreCase))) { s.UserGuid = currentUser.UserGuid; s.IsVerified = true; } else { // user is not authenticated but may still exist // attach userguid but don't flag as verified // because we don't know that the user who submited the form is the account owner SiteUser siteUser = SiteUser.GetByEmail(siteSettings, email); if (siteUser != null) { s.UserGuid = siteUser.UserGuid; } } s.IpAddress = SiteUtils.GetIP4Address(); subscriptions.Save(s); LetterInfo.UpdateSubscriberCount(s.LetterInfoGuid); if (!s.IsVerified) { needToSendVerification = true; } } else { // we found an existing subscription if (!s.IsVerified) { // if the current authenticated user has the same email mark it as verified if ((currentUser != null) && (string.Equals(currentUser.Email, email, StringComparison.InvariantCultureIgnoreCase))) { s.UserGuid = currentUser.UserGuid; if (showFormatOptions) { s.UseHtml = rbHtmlFormat.Checked; } subscriptions.Save(s); subscriptions.Verify(s.SubscribeGuid, true, Guid.Empty); } else if (s.BeginUtc < DateTime.UtcNow.AddDays(-WebConfigSettings.NewsletterReVerifcationAfterDays)) { // if the user never verifed before and its been at least x days go ahead and send another chance to verify needToSendVerification = true; // TODO: maybe we should log this in case some spam script is using the same email over and over // or maybe we should add a verification sent count on subscription } } } if (needToSendVerification) { string verificationTemplate = ResourceHelper.GetMessageTemplate(SiteUtils.GetDefaultCulture(), "NewsletterVerificationEmailMessage.config"); string confirmLink = siteRoot + "/eletter/Confirm.aspx?s=" + s.SubscribeGuid.ToString(); string messageBody = verificationTemplate.Replace("{NewsletterName}", letter.Title).Replace("{ConfirmationLink}", confirmLink).Replace("{SiteLink}", siteRoot); string subject = string.Format(CultureInfo.InvariantCulture, Resource.NewsletterVerifySubjectFormat, letter.Title); EmailMessageTask messageTask = new EmailMessageTask(SiteUtils.GetSmtpSettings()); messageTask.SiteGuid = siteSettings.SiteGuid; if (letter.FromAddress.Length > 0) { messageTask.EmailFrom = letter.FromAddress; } else { messageTask.EmailFrom = siteSettings.DefaultEmailFromAddress; } messageTask.EmailTo = email; messageTask.Subject = subject; messageTask.TextBody = messageBody; messageTask.QueueTask(); WebTaskManager.StartOrResumeTasks(); } }
public UserSignInEventArgs(SiteUser siteUser) { _siteUser = siteUser; }
private void btnUpdate_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } GalleryImage galleryImage; if (moduleId > -1) { if (itemId > -1) { galleryImage = new GalleryImage(moduleId, itemId); } else { galleryImage = new GalleryImage(moduleId); } if (galleryImage.ModuleId != moduleId) { SiteUtils.RedirectToAccessDeniedPage(this); return; } Module module = GetModule(moduleId, Gallery.FeatureGuid); galleryImage.ModuleGuid = module.ModuleGuid; galleryImage.ContentChanged += new ContentChangedEventHandler(galleryImage_ContentChanged); int displayOrder; if (!Int32.TryParse(txtDisplayOrder.Text, out displayOrder)) { displayOrder = -1; } if (displayOrder > -1) { galleryImage.DisplayOrder = displayOrder; } galleryImage.WebImageHeight = config.WebSizeHeight; galleryImage.WebImageWidth = config.WebSizeWidth; galleryImage.ThumbNailHeight = config.ThumbnailHeight; galleryImage.ThumbNailWidth = config.ThumbnailWidth; galleryImage.Description = edDescription.Text; galleryImage.Caption = txtCaption.Text; galleryImage.UploadUser = Context.User.Identity.Name; SiteUser siteUser = SiteUtils.GetCurrentSiteUser(); if (siteUser != null) { galleryImage.UserGuid = siteUser.UserGuid; } // as long as javascript is available this code should never execute // because the standard file input ir replaced by javascript and the file upload happens // at the service url /ImageGallery/upload.ashx // this is fallback implementation if (uploader.HasFile) { string ext = Path.GetExtension(uploader.FileName); if (!SiteUtils.IsAllowedUploadBrowseFile(ext, ".jpg|.gif|.png|.jpeg")) { lblMessage.Text = GalleryResources.InvalidFile; return; } string newFileName = Path.GetFileName(uploader.FileName).ToCleanFileName(WebConfigSettings.ForceLowerCaseForUploadedFiles); string newImagePath = VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName); if (galleryImage.ImageFile == newFileName) { // an existing gallery image delete the old one fileSystem.DeleteFile(newImagePath); } else { // this is a new galleryImage instance, make sure we don't use the same file name as any other instance int i = 1; while (fileSystem.FileExists(VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName))) { newFileName = i.ToInvariantString() + newFileName; i += 1; } } newImagePath = VirtualPathUtility.Combine(fullSizeImageFolderPath, newFileName); if (galleryImage.ItemId > -1) { //updating with a new image so delete the previous version GalleryHelper.DeleteImages(galleryImage, fileSystem, imageFolderPath); } //using (Stream s = flImage.FileContent) //{ // fileSystem.SaveFile(newImagePath, s, flImage.ContentType, true); //} using (Stream s = uploader.FileContent) { fileSystem.SaveFile(newImagePath, s, IOHelper.GetMimeType(Path.GetExtension(ext).ToLower()), true); } galleryImage.ImageFile = newFileName; galleryImage.WebImageFile = newFileName; galleryImage.ThumbnailFile = newFileName; galleryImage.Save(); GalleryHelper.ProcessImage(galleryImage, fileSystem, imageFolderPath, uploader.FileName, config.ResizeBackgroundColor); CurrentPage.UpdateLastModifiedTime(); CacheHelper.ClearModuleCache(moduleId); SiteUtils.QueueIndexing(); if (hdnReturnUrl.Value.Length > 0) { WebUtils.SetupRedirect(this, hdnReturnUrl.Value); return; } } else // not hasfile { //updating a previously uploaded image if (itemId > -1) { if (galleryImage.Save()) { CurrentPage.UpdateLastModifiedTime(); CacheHelper.ClearModuleCache(moduleId); SiteUtils.QueueIndexing(); if (newItem) { string thisUrl = SiteRoot + "/ImageGallery/EditImage.aspx?pageid=" + pageId.ToInvariantString() + "&mid=" + moduleId.ToInvariantString() + "&ItemID=" + galleryImage.ItemId.ToInvariantString(); WebUtils.SetupRedirect(this, thisUrl); return; } else { if (hdnReturnUrl.Value.Length > 0) { WebUtils.SetupRedirect(this, hdnReturnUrl.Value); return; } WebUtils.SetupRedirect(this, SiteUtils.GetCurrentPageUrl()); } } } } } }
/// <summary> /// Get a page's worth of Users listings /// </summary> /// <param name="onlineUsers"></param> /// <param name="pageToRequest">Page # we are requesting (1 based)</param> /// <param name="totalNumberPages">Total # of pages of data that Server can return us</param> private void ExecuteRequest_ForPage(List<SiteUser> onlineUsers, int pageToRequest, out int totalNumberPages) { int pageSize = _onlineUrls.PageSize; var urlQuery = UrlForUsersListRequest(pageSize, pageToRequest); var webRequest = CreateLoggedInWebRequest(urlQuery); webRequest.Method = "GET"; _onlineSession.StatusLog.AddStatus("Web request: " + urlQuery, -10); var response = GetWebReponseLogErrors(webRequest, "get users list"); var xmlDoc = GetWebResponseAsXml(response); //Get all the user nodes var nsManager = XmlHelper.CreateTableauXmlNamespaceManager("iwsOnline"); var users = xmlDoc.SelectNodes("//iwsOnline:user", nsManager); //Get information for each of the data sources foreach (XmlNode itemXml in users) { try { var ds = new SiteUser(itemXml); onlineUsers.Add(ds); } catch { AppDiagnostics.Assert(false, "User parse error"); _onlineSession.StatusLog.AddError("Error parsing user: "******"//iwsOnline:pagination", nsManager), pageSize); }
protected void SiteLogin_LoggedIn(object sender, EventArgs e) { IUserBAL itemBAL = new UserBAL(); User item = itemBAL.GetUserByLoginName(this.UserName.Trim()); SiteUser siteUser = new SiteUser(); siteUser.LoginName = item.UserID; siteUser.Name = item.UserName; siteUser.UserId = item.UserGuid; string cookieName = "siteguid" + SiteUtils.GetSiteId(); CookieHelper.SetCookie(cookieName, siteUser.UserId.ToString(), this.RememberMeSet); if (siteUser.UserId == Guid.Empty) return; UserSignInEventArgs u = new UserSignInEventArgs(siteUser); OnUserSignIn(u); }