Exemplo n.º 1
0
        /// <summary>
        /// 用户登录处理程序
        /// </summary>
        private void LoginProcess(string ServerHost, string LoginId, string Password, string AutoLogin, bool Taskbar)
        {
            WebClient WebClient  = new WebClient();
            Uri       PostUri    = default(Uri);
            string    PostString = "";

            byte[] PostData = {};

            PostUri    = new Uri("" + ServerHost + "/sync/login.ashx?timestamp=" + DateTime.Now.ToString("yyyyMMddHHmmssfffffff") + "");
            PostString = "loginid=" + HttpUtility.UrlEncode(LoginId) + "&password="******"";
            PostData   = Encoding.UTF8.GetBytes(PostString);

            buttonLogin.Enabled = false;
            buttonLogin.Text    = LangTable["buttonLogging"].TypeString();

            WebClient.Proxy = null;

            WebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

            WebClient.UploadDataCompleted += (object sender, UploadDataCompletedEventArgs e) =>
            {
                string Result = "";
                string Cookie = "";

                try
                {
                    if (e.Cancelled == false)
                    {
                        if (AppCommon.IsNothing(e.Error) == true)
                        {
                            Result = Encoding.UTF8.GetString(e.Result);

                            Cookie = WebClient.ResponseHeaders.Get("Set-Cookie");

                            WebClient.Dispose();

                            if (Result == "complete")
                            {
                                AppConfig.UserSession = Cookie;

                                LoginDataSave();

                                FormMain FormMain = new FormMain();

                                if (Taskbar == true)
                                {
                                    FormMain.Show();
                                }
                                else
                                {
                                    FormMain.notifyIcon.Visible = true;
                                }

                                this.Hide();
                            }
                            else if (Result == "lock-user-id")
                            {
                                labelLoginTips.Text = LangTable["tipsLockUserId"].TypeString();
                            }
                            else
                            {
                                labelLoginTips.Text = LangTable["tipsLoginFailed"].TypeString();
                            }
                        }
                        else
                        {
                            labelLoginTips.Text = LangTable["tipsLoginFailed"].TypeString();
                        }
                    }
                    else
                    {
                        labelLoginTips.Text = LangTable["tipsLoginFailed"].TypeString();
                    }
                }
                catch (Exception)
                {
                    labelLoginTips.Text = LangTable["tipsLoginFailed"].TypeString();
                }
                finally
                {
                    if (AppCommon.IsNothing(WebClient) == false)
                    {
                        WebClient.Dispose();
                    }

                    buttonLogin.Enabled = true;
                    buttonLogin.Text    = LangTable["buttonLogin"].TypeString();
                }
            };

            WebClient.UploadDataAsync(PostUri, PostData);
        }