public SimpleMembershipInitializer() { Database.SetInitializer<UsersContext>(null); try { using (var context = new UsersContext()) { if (!context.Database.Exists()) { // Create the SimpleMembership database without Entity Framework migration schema ((IObjectContextAdapter)context).ObjectContext.CreateDatabase(); WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); } } } catch (Exception ex) { throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information, please see http://go.microsoft.com/fwlink/?LinkId=256588", ex); } }
public ActionResult GetSub(string id) { UsersContext user = new UsersContext(); var useThis = from values in user.valuePerSettings where values.settingId_settingId.Key == id where !(from memSet in user.memberSettings where memSet.UserId.UserId == WebSecurity.CurrentUserId select memSet.literalValue).Contains(values.value) select new { values.value, values.description }; return Json(useThis, JsonRequestBehavior.AllowGet); }
public List<string> getValidSettings() { Headline.Models.UsersContext user = new Headline.Models.UsersContext(); List<string> listtouse = new List<string>(); var settings = from settingValues in user.valuePerSettings join settingId in user.Settings on settingValues.settingId_settingId equals settingId join groupSettingId in user.defineSettingGroups on settingId.groupId.settingGroupId equals groupSettingId.settingGroupId where (from literalValue in user.memberSettings where literalValue.UserId.UserId == WebSecurity.CurrentUserId select literalValue.literalValue).Contains(settingValues.value) select new { settingId, settingValues }; foreach (var item in settings) { listtouse.Add(item.settingId.Key + ":" + item.settingValues.value); } return listtouse; }
public ActionResult SettingDefine(settingDefineViewModel model, string returnUrl) { //if (model.memset.settingId.groupId != null) //{ using (var db = new UsersContext()) { if (model.literalValue == null || model.literalValue == "") { ModelState.AddModelError("", "Your setting value is missing, please try again"); return View(new searchHeadlineViewModel()); } if (model.settingName == null || model.settingName == "") { ModelState.AddModelError("", "Your setting is missing, please try again"); return View(new searchHeadlineViewModel()); } var defaultColor = ""; var defaultFont = ""; var defaultHighlight = ""; if (model.settingName == "styleSheet") { switch (model.literalValue) { case "Foundation": defaultColor = "Black"; defaultFont = "white"; defaultHighlight = "white"; break; case "Windows": defaultColor = "white"; defaultFont = "silver"; defaultHighlight = "blue"; break; } memberSetting defaultNeeded = db.memberSettings.FirstOrDefault(u => u.UserId.UserId == WebSecurity.CurrentUserId && u.settingId_settingId.Key == "backgroundColor"); memberSetting defaultNeeded2 = db.memberSettings.FirstOrDefault(u => u.UserId.UserId == WebSecurity.CurrentUserId && u.settingId_settingId.Key == "fontColor"); memberSetting defaultNeeded3 = db.memberSettings.FirstOrDefault(u => u.UserId.UserId == WebSecurity.CurrentUserId && u.settingId_settingId.Key == "highlightColor"); defaultNeeded.literalValue = defaultColor; defaultNeeded2.literalValue = defaultFont; defaultNeeded3.literalValue = defaultHighlight; } var settouse = (from set in db.Settings where set.Key == model.settingName//model.settingId.name select set.Key).FirstOrDefault(); memberSetting memset = db.memberSettings.FirstOrDefault(u => u.UserId.UserId == WebSecurity.CurrentUserId && u.settingId_settingId.Key == model.settingName); memset.literalValue = model.literalValue; db.SaveChanges(); } //} return View(new settingDefineViewModel()); }
public ActionResult additionalDetails(additionalMemberDetailsViewModel model, HttpPostedFileBase file) { UsersContext db = new UsersContext(); if (model.deleteProfileImage) { memsr.deleteProfileImage(file, WebSecurity.CurrentUserName); } else { if (model.userdetails.useOnlineImg == false) { files.updateImage(file, WebSecurity.CurrentUserName,"member"); } } userDefinition user = (from users in db.userDefinition join user2 in db.UserProfiles on users.usernameFK equals user2 where user2.UserId == WebSecurity.CurrentUserId select users).FirstOrDefault(); user.recoveryEmail = model.userdetails.recoveryEmail; user.forename = model.userdetails.forename; user.surname = model.userdetails.surname; user.isPublic = model.userdetails.isPublic; user.birthday = model.userdetails.birthday; user.help = model.userdetails.help; user.securityAnswer = model.userdetails.securityAnswer; user.securityQuestionID = (from secans in db.securityQuestions select secans).FirstOrDefault(); user.homePage = model.userdetails.homePage; user.emailAddress = model.userdetails.emailAddress; user.activitiesPublic = model.userdetails.activitiesPublic; user.followingPublic = model.userdetails.followingPublic; user.DOBPublic = model.userdetails.DOBPublic; user.interestPublic = model.userdetails.interestPublic; user.useOnlineImg = model.userdetails.useOnlineImg; user.language = (from lang in db.languages where lang.languageID == model.userdetails.language.languageID select lang).First(); if (model.userdetails.useOnlineImg) { if (model.deleteProfileImage) { user.onlineUrl = ""; } else { if (model.userdetails.useOnlineImg) { user.onlineUrl = model.userdetails.onlineUrl; } } } db.SaveChanges(); return View(new additionalMemberDetailsViewModel()); }
public PartialViewResult _saveSecurePicture(securePictureViewModel model) { UsersContext user = new UsersContext(); var currentSecureString = (from sec in user.userDefinition where sec.usernameFK.UserName == WebSecurity.CurrentUserName select sec.secure).First(); if (model.checkCurrentSecure) { if (sec.GetMD5Hash(model.secureString) == currentSecureString) { if (currentSecureString != "") { ModelState.AddModelError("securePassword", "checkCurrent = true, image matches = true"); } else { ModelState.AddModelError("securePassword", "checkCurrent = true, image matches = none currently stored"); } } else { ModelState.AddModelError("securePassword", "checkCurrent = true, image matches = false"); } } else { userDefinition userPicture = (from u in user.userDefinition where u.usernameFK.UserName == WebSecurity.CurrentUserName select u).First(); userPicture.secure = sec.GetMD5Hash(model.secureString); user.SaveChangesAsync(); ModelState.AddModelError("securePassword", "User should have updated image"); } return PartialView("_saveSecurePicture"); }
public void updateUserPermission(string username, List<string> permlist, string headlinename) { UsersContext user = new UsersContext(); removePermission(username, headlinename); var isView = permlist[0].Substring(5).ToString(); var isEdit = permlist[1].Substring(6).ToString(); var isInsert = permlist[2].Substring(8).ToString(); if (isView == "false" && isEdit == "false" && isInsert == "false") { var userRemove = (from headlineuse in user.headlineToUsers join headlines in user.headlines on headlineuse.headlineID equals headlines join users in user.UserProfiles on headlineuse.personID equals users where users.UserName == username where headlines.title == headlinename select headlineuse).FirstOrDefault(); var headlineToUpdate = (from headlines in user.headlines where headlines.title == headlinename select headlines).FirstOrDefault(); headlineToUpdate.followingCount -= 1; user.headlineToUsers.Remove(userRemove); user.SaveChanges(); } foreach (var item in permlist) { var permissionEdit = ""; var index = 0; var indexToUse = item.IndexOf(":"); switch (indexToUse) { case 4: permissionEdit = "view"; index = 4; break; case 5: permissionEdit = "edit"; index = 5; break; case 7: permissionEdit = "insert"; index = 7; break; } var isThisSet = item.Substring(index + 1).ToString(); if (isThisSet == "true") { user.permissionsToGroup.Add(new permissionToGroup { sourceID = (from headlines in user.headlines where headlines.title == headlinename select headlines.headlineDefinedId).First(), defineGroup = (from groups in user.groups where groups.groupName == headlinename + permissionEdit select groups).First(), defineSource = "Headline", permissionDefined = (from perms in user.permissions where perms.permissionName == permissionEdit select perms).First(), personConnecting = (from users in user.UserProfiles where users.UserName == username select users).First() }); user.SaveChanges(); } } }
public void removePermission(string username, string headlinename) { UsersContext user = new UsersContext(); var removeThese = (from permg in user.permissionsToGroup join perms in user.permissions on permg.permissionDefined equals perms join groups in user.groups on permg.defineGroup equals groups where perms.permissionName == "view" || perms.permissionName == "edit" || perms.permissionName == "insert" where permg.personConnecting.UserName == username where groups.groupName.Contains(headlinename) select permg.ID).ToList(); foreach (var item in removeThese) { var toRemove = (from permg in user.permissionsToGroup where permg.ID == item select permg).First(); user.permissionsToGroup.Remove(toRemove); } user.SaveChanges(); }
public ActionResult Register(registerViewModel model, HttpPostedFileBase file) { bool hasError = false; ViewBag.username = model.UserName; ViewBag.identifier = mem.imRegistering(true); int countLanguageValid = (from lang in user.languages where lang.languageID == model.languageDefined select lang).Count(); int countProfile = (from us in user.UserProfiles where us.UserName == model.UserName select us).Count(); if (countProfile > 0) { if ((from def in user.userDefinition join use in user.UserProfiles on def.usernameFK equals use where use.UserName == model.UserName select def.isArchived).First()) { ModelState.AddModelError("", "This username is archived currently, please try an alternative"); hasError = true; } } if (countLanguageValid < 1) { hasError = true; ModelState.AddModelError("", "Please check your language is valid"); } if (model.Password != null) { if (model.Password.Length < 8 || sec.checkLower(model.Password) == false || sec.checkUpper(model.Password) == false || sec.containsNumber(model.Password) == false) { hasError = true; ModelState.AddModelError("", "Your passwords does not pass the validation rules"); } if (model.Password != model.ConfirmPassword) { ModelState.AddModelError("", "Your passwords must match"); hasError = true; } } if (model.UserName != null && model.UserName.Length < 4) { ModelState.AddModelError("", "Your username must be at least 4 characters long"); hasError = true; } { if (model.securityQuestionID == -1) { ModelState.AddModelError("", "A security question must be selected"); hasError = true; } bool validPersonType = mem.personTypeValid(model.personType); if (validPersonType == false) { ModelState.AddModelError("", "Your person type is not recognised"); hasError = true; } if (hasError) { return View(new registerViewModel()); } UsersContext yt = new UsersContext(); if (ModelState.IsValid && hasError == false) { // Attempt to register the user try { memadd.registerUser(model, false); loginViewModel loggingIn = new loginViewModel(); loggingIn.UserName = model.UserName; loggingIn.Password = model.Password; loggingIn.RememberMe = true; Login(loggingIn, "/Member/memberDetails/"); user.SaveChanges(); // memadd.addUsage(model.UserName); files.updateImage(file, model.UserName, "member"); { ViewBag.Title = "Welcome " + WebSecurity.CurrentUserName + " check your details here"; return RedirectToAction("memberDetails", "member"); } } catch (MembershipCreateUserException e) { ModelState.AddModelError("", ErrorCodeToString(e.StatusCode)); } } // If we got this far, something failed, redisplay form return View(model); } }
public RegisterViewModel() { ApplicationDbContext appDB = new ApplicationDbContext(); UsersContext db = new UsersContext(); foreach(var role in appDB.Roles) { personTypes.Add(new SelectListItem { Text = role.Name }); } var secAnswers = (from sec in db.securityQuestions select sec).ToList(); foreach(var sec in secAnswers) { securityQuestions.Add(new SelectListItem { Text = sec.securityQuestion, Value = sec.questionID.ToString() }); } }
public ActionResult forgotUsername(forgotUsername model, string returnUsername) { UsersContext user = new UsersContext(); var username = from users in user.userDefinition join user2 in user.UserProfiles on users.usernameFK equals user2 where users.emailAddress == model.emailAddress where users.securityAnswer == model.securityAnswer select user2.UserName; foreach (var row in username) { ViewBag.username = row; return View(); } ViewBag.username = "******"; return View(); }
public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl) { string provider = null; string providerUserId = null; if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId)) { return RedirectToAction("Manage"); } if (ModelState.IsValid) { // Insert a new user into the database using (UsersContext db = new UsersContext()) { UserProfile user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower()); // Check if user already exists if (user == null) { // Insert name into the profile table if (model.Password.Length < 8 || sec.checkLower(model.Password) == false || sec.checkUpper(model.Password) == false || sec.containsNumber(model.Password) == false) { ModelState.AddModelError("", "Your passwords does not pass the validation rules"); return View(); } //db.UserProfiles.Add(new UserProfile { UserName = model.UserName }); //db.SaveChanges(); //OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName); //OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false); registerViewModel external = new registerViewModel() { UserName = model.UserName, Password = model.Password, interestPublic = false, activitiesPublic = false, followingPublic = false, DOBPublic = false, styleSheetName = "Foundation", personType = (from pt in db.personType where pt.personTypeID == 1 select pt.Description).FirstOrDefault(), onlineImg = model.onlineImg, useOnlineImg = model.useOnline }; memadd.registerUser(external, true); memadd.addUsage(model.UserName); { ViewBag.Title = "Welcome " + model.UserName + " check your details here"; mem.imRegistering(false); return RedirectToAction("memberDetails", "member"); } //return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name."); } } } ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName; ViewBag.ReturnUrl = returnUrl; return View(model); }
public ActionResult ExternalLoginCallback(string returnUrl, HttpPostedFileBase thirdprofile) { UsersContext user = new UsersContext(); AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl })); if (!result.IsSuccessful) { return RedirectToAction("ExternalLoginFailure"); } if (OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: false)) { return RedirectToLocal(returnUrl); } if (User.Identity.IsAuthenticated) { // If the current user is logged in add the new account OAuthWebSecurity.CreateOrUpdateAccount(result.Provider, result.ProviderUserId, User.Identity.Name); return RedirectToLocal(returnUrl); } else { // User is new, ask for their desired membership name string loginData = OAuthWebSecurity.SerializeProviderUserId(result.Provider, result.ProviderUserId); ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(result.Provider).DisplayName; ViewBag.ReturnUrl = returnUrl; mem.imRegistering(true); return View("ExternalLoginConfirmation", new RegisterExternalLoginModel { UserName = result.UserName, ExternalLoginData = loginData, userId = result.ProviderUserId }); } }
public ActionResult GetDescription(string value) { UsersContext user = new UsersContext(); var getTheDescription = from values in user.valuePerSettings where values.value == value select values.description; return Json(getTheDescription, JsonRequestBehavior.AllowGet); }
public void requestPermission(string permissionLevel, string headlinename) { UsersContext user = new UsersContext(); //remove all associated permissions first removePermission(WebSecurity.CurrentUserName, headlinename); string userForRequest = (from users in user.UserProfiles join headlines in user.headlines on users equals headlines.adminId where headlines.title == headlinename select users.UserName).First(); user.notifications.Add(new notifications { forType = itemType.headline, fromWho = WebSecurity.CurrentUserName, messageType = messageType.permissionRequest, read = false, toWho = (from use in user.UserProfiles where use.UserName == userForRequest select use).First(), optionalData1 = permissionLevel, typeID = (from hline in user.headlines where hline.title == headlinename select hline.headlineDefinedId).First(), whenNotifying = DateTime.Now }); user.SaveChanges(); }
public ActionResult editHeadline(headlineView model, string id, HttpPostedFileBase headlineHeader) { var thistitle = model.title; if (User.Identity.IsAuthenticated == false) { ModelState.AddModelError("editHeadline", "You must be logged in to change this"); return Redirect("/headlines/editHeadline/" + thistitle); } if (WebSecurity.CurrentUserId != (from headlines in user.headlines where headlines.title == id select headlines.adminId.UserId).FirstOrDefault()) { ModelState.AddModelError("editHeadline", "You are not authenticated to make a change here, please contact" + WebSecurity.CurrentUserName + "to gain access to the group"); return Redirect("/headlines/editHeadline/" + thistitle); } using (var db = new UsersContext()) { files.updateImage(headlineHeader, id, "HeadlineHeader"); headlineView headlineToEdit = db.headlines.FirstOrDefault(m => m.title == id); headlineToEdit.title = thistitle; headlineToEdit.accessLevel = model.accessLevel; db.SaveChanges(); } return Redirect("/headlines/editHeadline/" + thistitle); }
public void registerUser(registerViewModel model, Boolean isExternal) { var secureSetting = ""; if (model.isSecure) { secureSetting = model.secureString; } WebSecurity.CreateUserAndAccount(model.UserName, model.Password, model.status); WebSecurity.Login(model.UserName, model.Password); using (var db = new UsersContext()) { userDefinition userSubmission = new userDefinition { showOuter = true, homePage = "/Member/memberDetails/", activitiesPublic = model.activitiesPublic, DOBPublic = model.DOBPublic, followingPublic = model.followingPublic, interestPublic = model.interestPublic, usernameFK = (from userDefined in db.UserProfiles where userDefined.UserName == model.UserName select userDefined).FirstOrDefault(), }; if(isExternal) { userSubmission.useOnlineImg = model.useOnlineImg; userSubmission.onlineUrl = model.onlineImg; userSubmission.language = (from lang in db.languages where lang.Description == "English" select lang).First(); } if (isExternal == false) { var secQuestion = (from secq in db.securityQuestions where secq.questionID == model.securityQuestionID select secq).First(); userSubmission.language = (from lang in db.languages where lang.languageID == model.languageDefined select lang).First(); userSubmission.securityQuestionID = secQuestion; userSubmission.secure = sec.GetMD5Hash(secureSetting); userSubmission.emailAddress = model.emailAddress; userSubmission.status = model.status; userSubmission.recommendedBy = model.recommendedBy; userSubmission.securityAnswer = model.securityAnswer; userSubmission.personTypeID = (from ptype in db.personType where ptype.Description == model.personType select ptype).First(); userSubmission.useOnlineImg = false; } db.userDefinition.Add(userSubmission); db.SaveChanges(); mem.imRegistering(false); var user = db.userDefinition.Where(u => u.emailAddress == model.emailAddress) .OrderBy(u => u.ID).FirstOrDefault(); db.highlightsComputedMessages.Add( new highlightsComputedMessage { createdUserID = (from users in db.UserProfiles orderby users.UserId descending select users.UserId).First(), sourceDefinition = model.UserName, highlightID = (from highlights in db.highlightsPerType where highlights.highlightMethod == "personRegister" select highlights).First() } ); db.SaveChanges(); memberServices memThis = new memberServices(); var userIdDefined = (from idd in db.UserProfiles orderby idd.UserId descending select idd.UserId).First(); getActivityForIntRank(model.personType, userIdDefined, model.UserName, model.styleSheetName); } }