Esempio n. 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                #region 注册信息

                /*
                 * try {
                 *  var sp = new BUser().GetSysParams(20000001);
                 *  if (sp == null || sp.Count == 0) {
                 *      FailureText.InnerText = "系统提示:感谢您使用本产品。未从系统中获得注册信息,请检查系统配置是否正确,谢谢!";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 *
                 *  var mcode = sp[0].ParaDisplay;
                 *  var lcode = sp[0].Note;
                 *  if (String.IsNullOrEmpty(mcode)) {
                 *      FailureText.InnerText = "系统提示:感谢您使用本产品。未从系统中获得机器标识码,请启动服务程序以获得机器标识码,谢谢!";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 *
                 *  if (!Regex.IsMatch(mcode, @"^[a-fA-F0-9]{32}$")) {
                 *      FailureText.InnerText = "系统提示:感谢您使用本产品。机器标识码格式错误,请重新启动服务程序以获得机器标识码,谢谢!";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 *
                 *  if (String.IsNullOrEmpty(lcode)) {
                 *      FailureText.InnerText = "系统提示:感谢您使用本产品,您使用的产品尚未注册,建议您尽快从服务商处获取注册码注册本产品,以免耽误您的正常使用,谢谢!";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 *
                 *  var dl = WebUtility.GetDecryptLicense(lcode, mcode);
                 *  if (dl == null) {
                 *      FailureText.InnerText = "系统提示:感谢您使用本产品,您使用的产品注册码无效,建议您重新注册本产品,以免耽误您的正常使用,谢谢!";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 *
                 *  if (new DateTime(dl.Expiration) < DateTime.Today) {
                 *      FailureText.InnerText = "系统提示:感谢您使用本产品,您使用的产品注册码已过期,建议您重新注册本产品,以免耽误您的正常使用,谢谢!";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 *
                 *  if (WebUtility.UserData.Count >= dl.MaxUsers) {
                 *      FailureText.InnerText = "系统提示:超出限制最大用户数,登录失败。";
                 *      ErrorTips.Visible = true;
                 *      return;
                 *  }
                 * } catch (Exception err) {
                 *  FailureText.InnerText = "错误消息:" + err.Message;
                 *  ErrorTips.Visible = true;
                 * }
                 * */
                #endregion

                #region 身份认证
                try {
                    if (!LoginUtil.getInstance().isEnable())
                    {
                        FailureText.InnerText = "错误消息:未启用集中身份认证,请与管理员联系。";
                        ErrorTips.Visible     = true;
                        return;
                    }

                    if (!LoginUtil.getInstance().checkTicket(Request))
                    {
                        if (!LoginUtil.getInstance().hasAliveServer())
                        {
                            FailureText.InnerText = "错误消息:不存在可用的认证服务器!";
                            ErrorTips.Visible     = true;
                            return;
                        }

                        LoginUtil.getInstance().redirectToServer(Request, Response);
                        return;
                    }

                    var ticket = LoginUtil.getInstance().getTicket(Request);
                    if (!LoginUtil.getInstance().hasAliveServer())
                    {
                        FailureText.InnerText = "错误消息:不存在可用的认证服务器!";
                        ErrorTips.Visible     = true;
                        return;
                    }

                    var ticketObj = LoginUtil.getInstance().analysTicket(ticket);
                    if (ticketObj == null)
                    {
                        FailureText.InnerText = "错误消息:无效的认证票据!";
                        ErrorTips.Visible     = true;
                        return;
                    }

                    var userInfo = LoginUtil.getInstance().qryUserByTicket(ticketObj);
                    if (userInfo.RetCode == ResultCode.RESULT_OK)
                    {
                        LoadUser(userInfo.AccountID);
                    }
                    else
                    {
                        HttpContext.Current.Session.Clear();
                        FailureText.InnerText = "错误消息:集中身份认证失败!";
                        ErrorTips.Visible     = true;
                        return;
                    }
                } catch (Exception err) {
                    FailureText.InnerText = "错误消息:" + err.Message;
                    ErrorTips.Visible     = true;
                }
                #endregion
            }
        }