public async Task <ActionResult> UpdatePassword(ExternalUser model) { InitializeServiceClient(); //if (!ModelState.IsValid) //{ // return View(model); //} var user = await UserManager.FindByNameAsync(model.UserName); if (user == null) { // Don't reveal that the user does not exist return(RedirectToAction("UpdatePassword", "Index")); } var token = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var result = await UserManager.ResetPasswordAsync(user.Id, token, model.Password); //var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password); if (result.Succeeded) { TempData["msg"] = "Update Successful"; ExternalUserRequest externalUser = new ExternalUserRequest(); externalUser.ClientInfo = req.ClientInfo; externalUser.UserName = model.UserName; externalUser.Password = model.Password; HttpResponseMessage response = await client.PostAsJsonAsync("ExternalUser/SendExternalUserPassword", externalUser); bool resultsendmail = await response.Content.ReadAsAsync <bool>(); return(View(model)); } AddErrors(result); return(View()); }
public List <UserGroupMemberShip> GetUserMemberShip(ExternalUserRequest req) { List <UserGroupMemberShip> result = new List <UserGroupMemberShip>(); try { SqlSvrDAL dal = new SqlSvrDAL(req.ClientInfo); result = dal.GetUserGroupMemberShip(req); } catch (Exception ex) { //LogHelper.AddLog("ExternalUserController,GetUserMemberShip", ex.Message, ex.StackTrace, "HCL.Academy.Service", req.ClientInfo.emailId); TelemetryClient telemetry = new TelemetryClient(); telemetry.TrackException(ex); } return(result); }
public bool SendExternalUserPassword(ExternalUserRequest req) { bool result = false; try { SqlSvrDAL dal = new SqlSvrDAL(req.ClientInfo); result = dal.SendExternalUserPassword(req); } catch (Exception ex) { // LogHelper.AddLog("ExternalUserController,SaveExternalUser", ex.Message, ex.StackTrace, "HCL.Academy.Service", req.ClientInfo.emailId); TelemetryClient telemetry = new TelemetryClient(); telemetry.TrackException(ex); } return(result); }
public string ResetExternalUserPassword(ExternalUserRequest req) { string result = string.Empty; try { SqlSvrDAL dal = new SqlSvrDAL(req.ClientInfo); // string salt = GetCSPRNGSalt(); // string encryptedPassword = CreateHash(NewPassword, Encoding.ASCII.GetBytes(salt)); result = dal.ResetExternalUserPassword(req); } catch (Exception ex) { //LogHelper.AddLog("ExternalUserController,ResetExternalUserPassword", ex.Message, ex.StackTrace, "HCL.Academy.Service", req.ClientInfo.emailId); TelemetryClient telemetry = new TelemetryClient(); telemetry.TrackException(ex); } return(result); }
public async Task <ActionResult> Create(ExternalUser externalUser) { InitializeServiceClient(); try { if (externalUser.GroupId == 0) { ModelState.AddModelError("SelectedGroup", "Please select a Group"); return(View(externalUser)); } else if (externalUser.OrganizationID == 0) { ModelState.AddModelError("SelectedOrganization", "Please select an Organization"); return(View(externalUser)); } else if (externalUser.UserName == "") { ModelState.AddModelError("UserName", "Email is required"); return(View(externalUser)); } ExternalUserRequest user = new ExternalUserRequest(); user.ClientInfo = req.ClientInfo; user.EmployeeId = externalUser.EmployeeId; user.CompetencyLevelId = externalUser.CompetencyLevelId; user.SkillId = externalUser.SkillId; user.RoleId = externalUser.RoleId; user.GEOId = externalUser.GEOId; user.GroupId = externalUser.GroupId; user.Name = externalUser.Name; user.OrganizationId = externalUser.OrganizationID; user.UserName = externalUser.UserName; string randompassword = PasswordHelper.GeneratePassword(true, true, true, true, false, 8); var keyNew = PasswordHelper.GenerateSalt(10); var hashedpassword = PasswordHelper.EncodePassword(randompassword, keyNew); user.EncryptedPassword = hashedpassword; user.Password = randompassword; user.PasswordSalt = keyNew; user.Id = 0; HttpResponseMessage response = await client.PostAsJsonAsync("ExternalUser/SaveExternalUser", user); string result = await response.Content.ReadAsAsync <string>(); #region AspIdentity var Identityuser = new ApplicationUser { UserName = externalUser.UserName, Email = externalUser.UserName }; var Identityresult = await IdentityUserManager.CreateAsync(Identityuser, user.Password); #endregion End ASPIdentity if (Identityresult.Succeeded) { return(RedirectToAction("Index")); } else { ExternalUser extUser = new ExternalUser(); HttpResponseMessage orgResponse = await client.PostAsJsonAsync("ExternalUser/GetAllOrganizations", req); ViewBag.lstOrganizations = await orgResponse.Content.ReadAsAsync <List <Organization> >(); HttpResponseMessage groupResponse = await client.PostAsJsonAsync("ExternalUser/GetAllUserGroups", req); ViewBag.lstGroups = await groupResponse.Content.ReadAsAsync <List <UserGroup> >(); HttpResponseMessage skillResponse = await client.PostAsJsonAsync("Skill/GetAllSkills", req); ViewBag.Skills = await skillResponse.Content.ReadAsAsync <List <Skill> >(); HttpResponseMessage competencyResponse = await client.PostAsJsonAsync("Competency/GetAllCompetenceList", req); ViewBag.CompetenceList = await competencyResponse.Content.ReadAsAsync <List <Competence> >(); //List of copetency levels HttpResponseMessage geoResponse = await client.PostAsJsonAsync("Geo/GetAllGEOs", req); ViewBag.GEOs = await geoResponse.Content.ReadAsAsync <List <GEO> >(); HttpResponseMessage roleResponse = await client.PostAsJsonAsync("User/GetAllRoles", req); ViewBag.Roles = await roleResponse.Content.ReadAsAsync <List <Role> >(); TempData["msg"] = "Addition unsuccessful"; return(View(extUser)); } //return RedirectToAction("Index"); } catch (Exception ex) { ExternalUser extUser = new ExternalUser(); HttpResponseMessage orgResponse = await client.PostAsJsonAsync("ExternalUser/GetAllOrganizations", req); ViewBag.lstOrganizations = await orgResponse.Content.ReadAsAsync <List <Organization> >(); HttpResponseMessage groupResponse = await client.PostAsJsonAsync("ExternalUser/GetAllUserGroups", req); ViewBag.lstGroups = await groupResponse.Content.ReadAsAsync <List <UserGroup> >(); HttpResponseMessage skillResponse = await client.PostAsJsonAsync("Skill/GetAllSkills", req); ViewBag.Skills = await skillResponse.Content.ReadAsAsync <List <Skill> >(); HttpResponseMessage competencyResponse = await client.PostAsJsonAsync("Competency/GetAllCompetenceList", req); ViewBag.CompetenceList = await competencyResponse.Content.ReadAsAsync <List <Competence> >(); //List of copetency levels HttpResponseMessage geoResponse = await client.PostAsJsonAsync("Geo/GetAllGEOs", req); ViewBag.GEOs = await geoResponse.Content.ReadAsAsync <List <GEO> >(); HttpResponseMessage roleResponse = await client.PostAsJsonAsync("User/GetAllRoles", req); ViewBag.Roles = await roleResponse.Content.ReadAsAsync <List <Role> >(); TempData["msg"] = "Addition unsuccessful"; return(View(extUser)); } }
public async Task <ActionResult> Edit(int id, ExternalUser externalUser, FormCollection collection) { InitializeServiceClient(); try { if (externalUser.GroupId == 0) { ModelState.AddModelError("SelectedGroup", "Please select a Group"); return(View(externalUser)); } else if (externalUser.OrganizationID == 0) { ModelState.AddModelError("SelectedOrganization", "Please select an Organization"); return(View(externalUser)); } else if (externalUser.UserName == "") { ModelState.AddModelError("UserName", "Email is required"); return(View(externalUser)); } ExternalUserRequest user = new ExternalUserRequest(); user.Id = externalUser.ID; user.ClientInfo = req.ClientInfo; user.EmployeeId = externalUser.EmployeeId; user.CompetencyLevelId = externalUser.CompetencyLevelId; user.SkillId = externalUser.SkillId; // user.RoleId = externalUser.RoleId; user.GEOId = externalUser.GEOId; user.GroupId = externalUser.GroupId; user.Name = externalUser.Name; user.OrganizationId = externalUser.OrganizationID; user.UserName = externalUser.UserName; // string randompassword = Utilities.GeneratePassword(true, true, true, true, false, 8); // var keyNew = Utilities.GenerateSalt(10); // var hashedpassword = Utilities.EncodePassword(randompassword, keyNew); user.EncryptedPassword = ""; user.Password = ""; user.PasswordSalt = ""; HttpResponseMessage response = await client.PostAsJsonAsync("ExternalUser/SaveExternalUser", user); string result = await response.Content.ReadAsAsync <string>(); return(RedirectToAction("Index")); } catch { HttpResponseMessage orgResponse = await client.PostAsJsonAsync("ExternalUser/GetAllOrganizations", req); ViewBag.lstOrganizations = await orgResponse.Content.ReadAsAsync <List <Organization> >(); HttpResponseMessage groupResponse = await client.PostAsJsonAsync("ExternalUser/GetAllUserGroups", req); ViewBag.lstGroups = await groupResponse.Content.ReadAsAsync <List <UserGroup> >(); HttpResponseMessage skillResponse = await client.PostAsJsonAsync("Skill/GetAllSkills", req); ViewBag.Skills = await skillResponse.Content.ReadAsAsync <List <Skill> >(); HttpResponseMessage competencyResponse = await client.PostAsJsonAsync("Competency/GetAllCompetenceList", req); ViewBag.CompetenceList = await competencyResponse.Content.ReadAsAsync <List <Competence> >(); //List of copetency levels HttpResponseMessage geoResponse = await client.PostAsJsonAsync("Geo/GetAllGEOs", req); ViewBag.GEOs = await geoResponse.Content.ReadAsAsync <List <GEO> >(); HttpResponseMessage roleResponse = await client.PostAsJsonAsync("User/GetAllRoles", req); ViewBag.Roles = await roleResponse.Content.ReadAsAsync <List <Role> >(); TempData["msg"] = "Update unsuccessful"; return(View(externalUser)); } }
public async Task <ActionResult> Login(SPAuthUtility objAuth) { try { if (ModelState.IsValid) { InitializeServiceClient(objAuth.UserName); HttpResponseMessage rolesresponse = await client.PostAsJsonAsync("User/GetUserActiveStatus?emailAddress=" + objAuth.UserName, req); string activeStatus = await rolesresponse.Content.ReadAsAsync <string>(); if (activeStatus.ToUpper() == "TRUE") { HttpResponseMessage response = await client.PostAsJsonAsync("ExternalUser/GetExternalUserByUserName?UserName="******"SP_ServiceAccountID"].ToString(); // string name = authResponse.Name; //} #region AspIdentity // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(objAuth.UserName, objAuth.Password, false, true); #endregion if (result.ToString().ToUpper() == "FAILURE") { ModelState.AddModelError("", "Username and/or Password is incorrect."); } else if (result.ToString().ToUpper() == "LOCKEDOUT") { ModelState.AddModelError("", "Your account is lockedout.Try after some time."); } else if (result.ToString().ToUpper() == "SUCCESS") { ExternalUserRequest extuser = new ExternalUserRequest(); extuser.ClientInfo = req.ClientInfo; extuser.UserName = objAuth.UserName; HttpResponseMessage groupresponse = await client.PostAsJsonAsync("ExternalUser/GetUserMemberShip", extuser); List <UserGroupMemberShip> groupMemberships = await groupresponse.Content.ReadAsAsync <List <UserGroupMemberShip> >(); int groupPermission = 0; List <string> groups = new List <string>(); if (groupMemberships.Count > 0) { for (int i = 0; i < groupMemberships.Count; i++) { groups.Add(groupMemberships[i].GroupName); if (groupMemberships[i].GroupPermission > groupPermission) { groupPermission = groupMemberships[i].GroupPermission; } } } UserManager user = new UserManager(); user.GroupPermission = groupPermission; user.Groups = groups; user.UserName = authResponse.Name; user.DBUserId = Convert.ToInt32(authResponse.UserId); user.EmailID = authResponse.UserName; user.IsExternalUser = true; if (user != null && user.GroupPermission > 0) { HttpResponseMessage admininforesponse = await client.PostAsJsonAsync("Project/GetProjectAdminInfo?userid=" + user.DBUserId, req); ProjectAdminInfo admininfo = await admininforesponse.Content.ReadAsAsync <ProjectAdminInfo>(); user.Admininfo = admininfo; if (Session["CurrentUser"] == null) { Session.Add("CurrentUser", user); } else { Session.Remove("CurrentUser"); Session.Add("CurrentUser", user); } if (authResponse.FirstPasswordChanged) { return(RedirectToAction("Home", "Home")); } else { return(RedirectToAction("ResetPassword", "Account")); } } if (user != null && user.GroupPermission == 0) { ModelState.AddModelError("", "You are not Authorized to Log in"); } if (user == null) { ModelState.AddModelError("", "Username and/or Password is incorrect"); } } } else { ModelState.AddModelError("", "Your userid has been deactivated.Please contact administrator"); } } } catch (Exception ex) { // Utilities.LogToEventVwr(ex.Message, 0); if (ex.Message.Contains("denied")) { ModelState.AddModelError("", "You are not Authorized to Log in"); } else { ModelState.AddModelError("", "Username and/or Password is incorrect"); } } return(View(objAuth)); }