Пример #1
0
        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);
        }
Пример #5
0
        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));
            }
        }
Пример #6
0
        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));
            }
        }
Пример #7
0
        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));
        }