Пример #1
0
        /// <summary>
        /// 处理输出
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public string Process(HttpContext context)
        {
            string actionStr  = context.Request["action"];
            string token      = context.Request["token"];
            string sessionKey = context.Request["session.key"];

            //除登出外均需要验证
            if (token != this._communicateToken)
            {
                return(JsonConvert.SerializeObject(new SessionResult {
                    Message = "通信错误!"
                }));
            }

            if (actionStr != null)
            {
                SessionServerAction action = (SessionServerAction)Enum.Parse(
                    typeof(SessionServerAction), actionStr, true);

                //登出
                if (action == SessionServerAction.Logout)
                {
                    SsoResult result = this._server.LoginOut(sessionKey);
                    return(JsonConvert.SerializeObject(result));
                }

                if (action == SessionServerAction.Login)
                {
                    SsoResult result = this._server.Login(context.Request["usr"],
                                                          context.Request["pwd"]);
                    return(JsonConvert.SerializeObject(result));
                }

                if (action == SessionServerAction.GetSession)
                {
                    Person person = this._server.SessionManager.GetPerson(sessionKey);
                    if (person == null)
                    {
                        return(JsonConvert.SerializeObject(new SessionResult {
                            Message = "No session"
                        }));
                    }

                    return(JsonConvert.SerializeObject(new SessionResult {
                        Result = true, Person = person
                    }));
                }

                if (action == SessionServerAction.Test)
                {
                    return("Test ok!");
                }
            }


            return(JsonConvert.SerializeObject(new SessionResult {
                Message = "Invalid request"
            }));
        }
Пример #2
0
        private string ProcessRequest(HttpContext context, string actionStr, string sessionKey)
        {
            if (actionStr != null)
            {
                ServerAction action = (ServerAction)Enum.Parse(
                    typeof(ServerAction), actionStr, true);

                //登出
                if (action == ServerAction.Logout)
                {
                    SsoResult result = this.LoginOut(sessionKey);
                    //return JsonConvert.SerializeObject(result);
                    if (result.Result)
                    {
                        return("{\"Result\":true,\"Message\":\"" + result.Message.Replace("\"", "'") + "\"}");
                    }
                    else
                    {
                        return("{\"Result\":false,\"Message\":\"" + result.Message + "\"}");
                    }
                }

                if (action == ServerAction.Login)
                {
                    SsoResult result = this.Login(context.Request["usr"],
                                                  context.Request["pwd"]);
                    return(JsonConvert.SerializeObject(result));
                }

                if (action == ServerAction.GetSession)
                {
                    Person person = this.SessionManager.GetPerson(sessionKey);
                    if (person == null)
                    {
                        return(JsonConvert.SerializeObject(new SessionResult {
                            Message = "no session"
                        }));
                    }

                    return(JsonConvert.SerializeObject(new SessionResult {
                        Result = true, Person = person
                    }));
                }

                if (action == ServerAction.Test)
                {
                    return("test ok!");
                }
            }


            return(JsonConvert.SerializeObject(new SessionResult {
                Message = "invalid request"
            }));
        }
Пример #3
0
        public SsoResult Logout(string sessionKey)
        {
            SsoResult result = ClientUtil.LogoutRequest(this._serverUrl, this._token, sessionKey);

            if (result.Result && !string.IsNullOrEmpty(result.Message))
            {
                string oldMsg = result.Message;
                try
                {
                    result.Message = SsoUtil.DecodeBase64(result.Message);
                }
                catch
                {
                    result.Message = oldMsg;
                }
            }
            return(result);
        }
Пример #4
0
        public SsoResult Login(string user, string pwd)
        {
            SsoResult result = ClientUtil.LoginRequest(this._serverUrl, this._token, user, pwd);

            if (result.Result && !string.IsNullOrEmpty(result.Message))
            {
                string oldMsg = result.Message;
                try
                {
                    result.Message = SsoUtil.DecodeBase64(result.Message);
                }
                catch
                {
                    result.Message = oldMsg;
                }
            }
            return(result);
        }
Пример #5
0
        /// <summary>
        /// 登陆
        /// </summary>
        /// <param name="usr"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        private SsoResult Login(string usr, string pwd)
        {
            SsoResult result = new SsoResult();

            int personId = 0;

            if ((personId = this._ssoHandler(usr, pwd)) > 0)
            {
                result.Result     = true;
                result.SessionKey = this._sessionManager.SaveSession(personId);
                result.Message    = this.GetSsoLoginHtml(result.SessionKey);
            }
            else
            {
                result.Message = "";
            }
            return(result);
        }
Пример #6
0
 /// <summary>
 /// 登陆
 /// </summary>
 /// <param name="usr"></param>
 /// <param name="pwd"></param>
 /// <returns></returns>
 private SsoResult Login(string usr, string pwd)
 {
     SsoResult result = new SsoResult();
   
     int personId = 0;
     if ((personId = this._ssoHandler(usr, pwd)) > 0)
     {
         result.Result = true;
         result.SessionKey = this._sessionManager.SaveSession(personId);
         result.Message = this.GetSsoLoginHtml(result.SessionKey);
     }
     else
     {
         result.Message = "";
     }
     return result;
 }