示例#1
0
        public ActionResult Eboard(string Name)
        {
            LoginUserMoel loginUser = new LoginUserMoel();

            loginUser.UserName   = Name;
            loginUser.IsEmployee = 0;
            SignIn(loginUser, "");
            return(RedirectToAction("Index", "Board"));
        }
示例#2
0
        public ActionResult EboardAuto()
        {
            ///PDMSWeb/Board/getShowContent?selectProjects=SH_MP_MP&selectFunplants=Band%2CAssembly1&Part_Types=Band%2CAssembly1&Optype=OP2&PageNumber=3&PageSize=12
            LoginUserMoel loginUser = new LoginUserMoel();

            var cooike = System.Web.HttpContext.Current.Request.Cookies.Get(SessionConstants.UserSelect);

            loginUser.UserName   = cooike["userName"];
            loginUser.IsEmployee = 0;
            SignIn(loginUser, "");
            return(RedirectToAction("IndexWithCookie", "Board"));
        }
示例#3
0
        public HttpResponseMessage LoginIn(LoginUserMoel loginUser)
        {
            var systemUser = commonService.GetSystemUserByNTId(loginUser.UserName, 1);

            if (systemUser == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound, "ACCOUNT NOT EXIST"));
            }
            if (systemUser.Enable_Flag == false)
            {
                return(Request.CreateResponse(HttpStatusCode.Forbidden, "ACCOUNT NOT ENABLED"));
            }

            //var userInfo = commonService.GetUserInfo(systemUser.Account_UID);

            var LDAPswitch = ConfigurationManager.AppSettings["LDAPAuthentication"].ToString();

            //判断WebConfig里面是否开启了需要输入密码登录
            if (!string.IsNullOrWhiteSpace(LDAPswitch) && LDAPswitch.Equals("ON", StringComparison.CurrentCultureIgnoreCase))
            {
                ValidateUser validateUser = new ValidateUser(settingService);
                //如果是物料员登录,则要判断是成都还是无锡的专案,成都的不需要输入密码,无锡的需要输入密码
                if (systemUser.MH_Flag)
                {
                    var projectSite = commonService.GetProjectSite(systemUser.Account_UID);
                    switch (projectSite)
                    {
                    case "CTU":
                        break;

                    case "WUXI_M":
                        if (string.IsNullOrEmpty(loginUser.Password) ||
                            !validateUser.LDAPValidateByMHFlag(loginUser.UserName, loginUser.Password, loginUser.IsEmployee))
                        {
                            return(Request.CreateResponse(HttpStatusCode.Unauthorized, "WRONG PASSWORD"));
                        }
                        break;
                    }
                }
                else if (systemUser.RoleList != null && systemUser.RoleList.Exists(x => x.Role_ID == "PlayBoardPlayUser"))
                {
                    //硬编码的角色Role_ID,这个角色免密码登录,直接显示播放看板
                    //PlayBoardPlayUser 播放看板播放账号
                }
                else if (systemUser.User_Name.Contains("电子看板"))
                {
                }
                else
                {
                    if (string.IsNullOrEmpty(loginUser.Password) ||
                        !validateUser.LDAPValidate(loginUser.UserName, loginUser.Password, loginUser.IsEmployee))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized, "WRONG PASSWORD"));
                    }

                    //loginUser.Password = "******";
                }
                //如果不是物料员帐号登录则需要密码

                //if (!systemUser.MH_Flag && !systemUser.User_Name.Contains("电子看板"))
                //{
                //    //LDAP Authentication

                //    ValidateUser validateUser = new ValidateUser(settingService);
                //    if (string.IsNullOrEmpty(loginUser.Password) ||
                //        !validateUser.LDAPValidate(loginUser.UserName, loginUser.Password, loginUser.IsEmployee))
                //    {
                //        return Request.CreateResponse(HttpStatusCode.Unauthorized, "WRONG PASSWORD");
                //    }
                //}
                //else
                //    loginUser.Password = "******";
            }
            else
            {
                loginUser.Password = string.Empty;
            }

            //登录后,更新登录时间

            systemService.updateLastLoginDate(systemUser.Account_UID);
            //从db获取token数据并解密
            var  userlogintoken = string.Empty;
            bool refresh        = systemUser.LoginToken == null;
            FormsAuthenticationTicket ticket = null;

            if (!refresh)
            {
                userlogintoken = systemUser.LoginToken;

                try
                {
                    ticket = FormsAuthentication.Decrypt(userlogintoken);
                }
                catch
                {
                    refresh = true;
                }
            }

            if (refresh || loginUser.Password != ticket.UserData || loginUser.UserName != ticket.Name)
            {
                //userlogintoken = ReFreshToken(systemUser.Account_UID, loginUser.Password);
            }

            return(Request.CreateResponse(new AuthorizedLoginUser {
                Account_UID = systemUser.Account_UID,
                User_Name = systemUser.User_Name,
                System_Language_UID = systemUser.System_Language_UID,
                Token = userlogintoken,
                MH_Flag = systemUser.MH_Flag,
                IsMulitProject = systemUser.IsMulitProject,
                flowChartMaster_Uid = systemUser.flowChartMaster_Uid,
                USER_Ntid = systemUser.User_NTID,
                RoleList = systemUser.RoleList
            }));
        }
示例#4
0
        public ActionResult SignIn(LoginUserMoel loginUser, string returnUrl)
        {
            HttpResponseMessage responMessage;
            var apiPath = ConfigurationManager.AppSettings["WebApiPath"].ToString();

            using (var client = new HttpClient())
            {
                var content = new StringContent(JsonConvert.SerializeObject(loginUser));
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                responMessage = client.PostAsync(apiPath + "Login/LoginIn", content).Result;
            }

            if (responMessage.IsSuccessStatusCode)
            {
                var user = JsonConvert.DeserializeObject <AuthorizedLoginUser>(responMessage.Content.ReadAsStringAsync().Result);

                #region put token/user info into Cookie and Session and SetAuthCookie make Identity true
                if (Request.Cookies[SessionConstants.LoginTicket] != null)
                {
                    CookiesHelper.RemoveCookiesByCookieskey(Request, Response, SessionConstants.LoginTicket);
                    CookiesHelper.RemoveCookiesByCookieskey(Request, Response, SessionConstants.CurrentAccountUID);
                    CookiesHelper.RemoveCookiesByCookieskey(Request, Response, SessionConstants.CurrentUserName);
                }
                else
                {
                    CookiesHelper.AddCookies(Response, SessionConstants.LoginTicket, user.Token, 1);
                    CookiesHelper.AddCookies(Response, SessionConstants.CurrentAccountUID, user.Account_UID.ToString(), 1);
                    CookiesHelper.AddCookies(Response, SessionConstants.CurrentUserName, user.User_Name, 1);
                }


                if (Request.Cookies["APIPath"] == null)
                {
                    CookiesHelper.AddCookies(Response, "APIPath", apiPath, 1);
                }

                FormsAuthentication.SetAuthCookie(loginUser.UserName, false);

                SetLogon(user);

                #endregion

                //get ticket of login user
                //var ticket = FormsAuthentication.Decrypt(user.Token);

                //set principal
                //IIdentity identity = new FormsIdentity(ticket);
                //IPrincipal principal = new GenericPrincipal(identity, null);
                //HttpContext.User = principal;
                if (user.RoleList != null && user.RoleList.Exists(x => x.Role_ID == "PlayBoardPlayUser"))  //.User_Name.Contains("播放看板")
                {
                    //硬编码的角色Role_ID,这个角色免密码登录,直接显示播放看板
                    //PlayBoardPlayUser 播放看板播放账号
                    return(RedirectToAction("Index", "PlayBoard", new { playUserUID = user.Account_UID }));
                }
                if (user.User_Name.Contains("电子看板"))
                {
                    return(RedirectToAction("Index", "Board"));
                }

                //如果用户是物料员则跳转到生成数据维护画面,如果不是则到导航画面
                if (user.MH_Flag)
                {
                    if (user.IsMulitProject)
                    {
                        Session[SessionConstants.MHFlag_MulitProject] = user.IsMulitProject;

                        return(RedirectToAction("ProjectList", "FlowChart"));
                    }
                    else if (user.USER_Ntid == "EQPUser")
                    {
                        return(RedirectToAction("EQPMaintenance", "Equipmentmaintenance", new { iseqp_user = "******" }));
                    }
                    else
                    {
                        var master_Uid = user.flowChartMaster_Uid;
                        if (master_Uid == null)
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                        else
                        {
                            return(RedirectToAction("ProductData", "ProductInput", new { flowChartMaster_Uid = master_Uid }));
                        }
                    }
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            else
            {
                ViewBag.InvalidCode = string.Empty;

                switch (responMessage.StatusCode)
                {
                case HttpStatusCode.Forbidden:
                    ViewBag.InvalidCode = "ACCOUNTNOTENABLED";
                    break;

                case HttpStatusCode.NotFound:
                    ViewBag.InvalidCode = "ACCOUNTNOTEXIST";
                    break;

                case HttpStatusCode.Unauthorized:
                    ViewBag.InvalidCode = "WRONGPASSWORD";
                    break;

                case HttpStatusCode.InternalServerError:
                    throw new Exception("API Server Error");

                default:
                    break;
                }

                return(View("Index"));
            }
        }