Beispiel #1
0
        public IHttpActionResult Registration()
        {
            SSOService service = new SSOService();

            var response = service.SSORegistrationService();

            if (response.isSuccessful == false)
            {
                return(Content(HttpStatusCode.BadRequest, response));
            }

            return(Ok(response));
        }
        //public ActionResult png()
        //{
        //     //public void ShowAuthCode(Stream stream, out string code)

        //    //Random random = new Random();
        //    //code = random.Next(1000, 9999).ToString();

        //    //Bitmap bitmap = CreateAuthCode(code);
        //    //bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Gif);

        //    var iCount = 4;
        //    var number=0;
        //    var checkCode = String.Empty;
        //    var iSeed = DateTime.Now.Millisecond;
        //    var random = new Random(iSeed);
        //    for (int i = 0; i < iCount; i++)
        //    {
        //        number = random.Next(10);
        //        checkCode += number.ToString();
        //    }
        //    Session["CheckCode"] = checkCode;
        //    if (checkCode == null || checkCode.Trim() == String.Empty)
        //        return View();
        //    int iWordWidth = 15;
        //    int iImageWidth = checkCode.Length * iWordWidth;
        //    Bitmap image = new Bitmap(iImageWidth, 20);
        //    Graphics g = Graphics.FromImage(image);
        //    try
        //    {
        //        //生成随机生成器
        //        random = new Random();
        //        //清空图片背景色
        //        g.Clear(Color.White);

        //        //画图片的背景噪音点
        //        for (int i = 0; i < 20; i++)
        //        {
        //            int x1 = random.Next(image.Width);
        //            int x2 = random.Next(image.Width);
        //            int y1 = random.Next(image.Height);
        //            int y2 = random.Next(image.Height);
        //            g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
        //        }

        //        //画图片的背景噪音线
        //        for (int i = 0; i < 2; i++)
        //        {
        //            int x1 = 0;
        //            int x2 = image.Width;
        //            int y1 = random.Next(image.Height);
        //            int y2 = random.Next(image.Height);
        //            if (i == 0)
        //            {
        //                g.DrawLine(new Pen(Color.Gray, 2), x1, y1, x2, y2);
        //            }
        //        }
        //        for (int i = 0; i < checkCode.Length; i++)
        //        {

        //            string Code = checkCode[i].ToString();
        //            int xLeft = iWordWidth * (i);
        //            random = new Random(xLeft);
        //            iSeed = DateTime.Now.Millisecond;
        //            int iValue = random.Next(iSeed) % 4;
        //            if (iValue == 0)
        //            {
        //                Font font = new Font("Arial", 13, (FontStyle.Bold | System.Drawing.FontStyle.Italic));
        //                Rectangle rc = new Rectangle(xLeft, 0, iWordWidth, image.Height);
        //                LinearGradientBrush brush = new LinearGradientBrush(rc, Color.Blue, Color.Red, 1.5f, true);
        //                g.DrawString(Code, font, brush, xLeft, 2);
        //            }
        //            else if (iValue == 1)
        //            {
        //                Font font = new System.Drawing.Font("楷体", 13, (FontStyle.Bold));
        //                Rectangle rc = new Rectangle(xLeft, 0, iWordWidth, image.Height);
        //                LinearGradientBrush brush = new LinearGradientBrush(rc, Color.Blue, Color.DarkRed, 1.3f, true);
        //                g.DrawString(Code, font, brush, xLeft, 2);
        //            }
        //            else if (iValue == 2)
        //            {
        //                Font font = new System.Drawing.Font("宋体", 13, (System.Drawing.FontStyle.Bold));
        //                Rectangle rc = new Rectangle(xLeft, 0, iWordWidth, image.Height);
        //                LinearGradientBrush brush = new LinearGradientBrush(rc, Color.Green, Color.Blue, 1.2f, true);
        //                g.DrawString(Code, font, brush, xLeft, 2);
        //            }
        //            else if (iValue == 3)
        //            {
        //                Font font = new System.Drawing.Font("黑体", 13, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Bold));
        //                Rectangle rc = new Rectangle(xLeft, 0, iWordWidth, image.Height);
        //                LinearGradientBrush brush = new LinearGradientBrush(rc, Color.Blue, Color.Green, 1.8f, true);
        //                g.DrawString(Code, font, brush, xLeft, 2);
        //            }
        //        }
        //        //////画图片的前景噪音点
        //        //for (int i = 0; i < 8; i++)
        //        //{
        //        //    int x = random.Next(image.Width);
        //        //    int y = random.Next(image.Height);
        //        //    image.SetPixel(x, y, Color.FromArgb(random.Next()));
        //        //}
        //        //画图片的边框线
        //        g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
        //        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        //        image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
        //        Response.ClearContent();
        //        Response.BinaryWrite(ms.ToArray());
        //    }
        //    finally
        //    {
        //        g.Dispose();
        //        image.Dispose();
        //    }



        //    //private Bitmap CreateAuthCode(string str)

        //    //Font fn = new Font("宋体", 12);
        //    //Brush forecolor = Brushes.Black;
        //    //Brush bgcolor = Brushes.White;
        //    //PointF pf = new PointF(5, 5);
        //    //Bitmap bitmap = new Bitmap(100, 25);
        //    //Rectangle rec = new Rectangle(0, 0, 100, 25);
        //    //Graphics gh = Graphics.FromImage(bitmap);
        //    //gh.FillRectangle(bgcolor, rec);
        //    //gh.DrawString(str, fn, forecolor, pf);
        //    //return bitmap;

        //    return View();
        //}
        public ActionResult TiackLogin(string ticket)
        {
            if (!string.IsNullOrEmpty(ticket))
            {
                string     validationTicket = new SSOService().TicketValidation(ticket);
                SSOTicket  resTicket        = JsonConvert.DeserializeObject <SSOTicket>(validationTicket);
                string     loginName        = resTicket.loginname;
                string     orgCoding        = resTicket.orgcoding;
                string     realName         = resTicket.username;
                string     userInfo         = new SSOService().GetUserInfo(loginName, orgCoding);
                YHUserInfo yhUser           = JsonConvert.DeserializeObject <YHUserInfo>(userInfo);
                if (yhUser == null)
                {
                    return(RedirectToAction("Login", "Account"));
                }
                string    orgStr  = new SSOService().GetOrgInfo(orgCoding);
                YHOrgInfo orgInfo = JsonConvert.DeserializeObject <YHOrgInfo>(orgStr);
                if (orgInfo == null)
                {
                    return(RedirectToAction("Login", "Account"));
                }
                string         orgname     = orgInfo.orgname;
                string         headpicture = yhUser.headpicture;
                LoginViewModel loginModel  = new LoginViewModel();
                loginModel.UserName = "******";
                loginModel.Password = "******";
                using (var authService = HostContext.ResolveService <AuthenticateService>(base.HttpContext))
                {
                    #region 登陆
                    var response = authService.Authenticate(new Authenticate
                    {
                        UserName   = loginModel.UserName,
                        Password   = loginModel.Password,
                        RememberMe = true
                    });
                    var session = base.SessionAs <UserSession>();
                    session.headpicture = headpicture;
                    session.orgname     = orgname;
                    session.yhRealName  = realName;
                    var authTicket = new FormsAuthenticationTicket(loginModel.UserName, loginModel.RememberMe, 120);
                    var cookie     = new HttpCookie(FormsAuthentication.FormsCookieName,
                                                    FormsAuthentication.Encrypt(authTicket));
                    cookie.HttpOnly = true;
                    cookie.Expires  = loginModel.RememberMe ? DateTime.Now.AddDays(2d) : DateTime.Now.AddMinutes(120);
                    Response.Cookies.Add(cookie);

                    if (Url.IsLocalUrl(""))
                    {
                        return(Redirect(Dy.Common.UrlHelper.Decode("")));
                    }
                    else if (loginModel.Password != ((int)GrassrootsFloodCtrlEnums.InitialPasswordEnums.初始密码).ToString() || loginModel.UserName == "dxz")
                    {
                        var userrole = HostContext.Resolve <SysService>().GET(new GetUserByIdOrUserName()
                        {
                            UserName = loginModel.UserName
                        });
                        if (null != userrole && userrole.RoleID == (int)GrassrootsFloodCtrlEnums.RoleEnums.县级用户)
                        {
                            return(RedirectToAction("CountyIndex", "Audit"));
                        }
                        else if (null != userrole && userrole.RoleID == (int)GrassrootsFloodCtrlEnums.RoleEnums.市级用户)
                        {
                            return(RedirectToAction("CityIndex", "Audit"));
                        }
                        else if (null != userrole && userrole.RoleID == (int)GrassrootsFloodCtrlEnums.RoleEnums.省级用户)
                        {
                            return(Redirect("/Leader/Index"));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    else
                    {
                        return(RedirectToAction("ModificationPsaaword", "Home"));
                    }
                    #endregion
                }
            }
            return(RedirectToAction("Login", "Account"));
        }
Beispiel #3
0
        public void Test()
        {
            //从单点登录转入
            WebClient wc     = new WebClient();
            string    uri    = "http://221.2.94.82:8088/GPM/App/GPM/SSOService.asmx";
            Stream    stream = wc.OpenRead(uri);


            if (Request.QueryString["UserNo"] != null && Request.QueryString["SID"] != null)
            {
                SSOService client = new SSOService();
                //SSOServiceSoapClient client = new SSOServiceSoapClient();
                string pams = client.CheckUser(Request.QueryString["UserNo"], Request.QueryString["SID"], "Travel");
                if (pams.IndexOf("@#¥%") > 0)
                {
                    string[] usernums = Regex.Split(pams, "@#¥%");
                    string   user     = usernums[0];
                    string   pwd      = usernums[1];
                    if (string.IsNullOrEmpty(pwd))
                    {
                        bool flag = DBHelper.IsExists(user);

                        if (flag)
                        {
                            DataRow ObjDR = DBHelper.GetUserInfo(user).Rows[0];
                            Session["UserID"]   = Convert.ToString(ObjDR["UserID"]);
                            Session["LoginID"]  = Convert.ToString(ObjDR["LoginID"]);
                            Session["UserName"] = Convert.ToString(ObjDR["UserName"]);
                            Session["UserPwd"]  = Convert.ToString(ObjDR["UserPwd"]);

                            string strScript = "";
                            strScript = strScript + "<script language='javascript'>";
                            strScript = strScript + "newWin=window.open('MainFrame.aspx','MainFrame','titlebar=yes,menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,copyhistory=yes,top=0,left=0,width=screen.availWidth,height=screen.availHeight');";
                            strScript = strScript + "newWin.moveTo(0,0);";
                            strScript = strScript + "newWin.resizeTo(screen.availWidth,screen.availHeight);";
                            strScript = strScript + "window.opener=null;";
                            strScript = strScript + "window.open('','_self');";
                            strScript = strScript + "window.close();";
                            strScript = strScript + "window.parent.close();";
                            strScript = strScript + "</script>";
                            Response.Write(strScript);
                        }
                        else
                        {
                            this.RegisterStartupScript("newWindow", "<script language='javascript'>alert('当前系统不存在此用户!');</script>");
                        }
                    }
                    else
                    {
                        DataRow ObjDR = DBHelper.GetUserInfo(user).Rows[0];
                        Session["UserID"]   = Convert.ToString(ObjDR["UserID"]);
                        Session["LoginID"]  = Convert.ToString(ObjDR["LoginID"]);
                        Session["UserName"] = Convert.ToString(ObjDR["UserName"]);
                        Session["UserPwd"]  = Convert.ToString(ObjDR["UserPwd"]);

                        string strScript = "";
                        strScript = strScript + "<script language='javascript'>";
                        strScript = strScript + "newWin=window.open('MainFrame.aspx','MainFrame','titlebar=yes,menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no,copyhistory=yes,top=0,left=0,width=screen.availWidth,height=screen.availHeight');";
                        strScript = strScript + "newWin.moveTo(0,0);";
                        strScript = strScript + "newWin.resizeTo(screen.availWidth,screen.availHeight);";
                        strScript = strScript + "window.opener=null;";
                        strScript = strScript + "window.open('','_self');";
                        strScript = strScript + "window.close();";
                        strScript = strScript + "window.parent.close();";
                        strScript = strScript + "</script>";
                        Response.Write(strScript);
                    }
                }
                else
                {
                    // labResult.Text = pams;
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="logid"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public int SetPassWord(string logid, string password)
        {
            int iret = 0;

            try
            {
                //统一身份认证启用的情况下,同步修改统一身份认证服务器的用户密码
                if (IsUseUia())
                {
                    //旧密码
                    string oldpassword = NG.NGEncode.DecodePassword(HttpContext.Current.Session["uiapwd"].ToString(), 128);

                    string tokenIdentity = string.Empty;
                    //统一身份认证
                    string ssoPath     = HttpContext.Current.Request.PhysicalApplicationPath + "\\sso.config";
                    string serverUrl   = string.Format("http://{0}/v1.0/Router.ashx", SSOService.GetSTSLoginWebSiteName());
                    var    client      = new DefaultNGClient(serverUrl, MainCommonUIP.GetConfigSetion(ssoPath, "WebSiteIdentity"), MainCommonUIP.GetConfigSetion(ssoPath, "MD5key"), NG.SDK10.Enums.EnumDataFormat.Xml);
                    string newpassword = NG.NGEncode.DecodePassword(password, 128);

                    var reqCPW = new UserChangePWRequest()
                    {
                        //tokenkey
                        TokenIdentity = HttpContext.Current.Session["ssotoken"].ToString(),
                        //userkey
                        ChangeUserKey = HttpContext.Current.Session["ssouserkey"].ToString(),
                        NewPassword   = newpassword,
                        OldPassword   = oldpassword
                    };

                    UserResponse user = client.Execute(reqCPW);

                    if (!string.IsNullOrEmpty(user.UserKey))
                    {
                        iret = 1;
                    }

                    iret = dac.SetPassWord(AppSessionConfig.GetPubDBConnStr(), logid, password);

                    string loginACCount       = AppSessionConfig.GetLoginACCount();//登录帐套
                    bool   netcallIsAvailable = PublicUtils.GetNetcallIsAvailableEx(loginACCount);
                    if (netcallIsAvailable)
                    {
                        IFactory             facatory = new NetCallFactory();
                        IInstantMessageRules rules    = facatory.Create();
                        string msg = string.Empty;
                        rules.SetUserPassWord(logid, password, ref msg);
                    }

                    System.Diagnostics.Trace.WriteLine("修改用户Password成功! 用户标识:" + user.UserKey);
                }
                else
                {
                    //string file = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + @"\DMC\TimerService\PortalMaptoNetcallConfig.dat";
                    string loginACCount       = AppSessionConfig.GetLoginACCount();//登录帐套
                    bool   netcallIsAvailable = PublicUtils.GetNetcallIsAvailableEx(loginACCount);
                    if (netcallIsAvailable)
                    {
                        IFactory             facatory = new NetCallFactory();
                        IInstantMessageRules rules    = facatory.Create();
                        string msg = string.Empty;
                        rules.SetUserPassWord(logid, password, ref msg);
                    }

                    iret = dac.SetPassWord(AppSessionConfig.GetPubDBConnStr(), logid, password);
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Trace.WriteLine(e.Message + e.StackTrace);
                iret = 0;
                //throw e;  netcall密码有时候修改失败,异常不抛出
            }
            return(iret);
        }