Example #1
0
        //Kiểm tra request đã được xác thực chưa
        //false: request is not authenticated
        //true: request is authenticated
        //Xóa thông tin user đăng nhập nếu cần
        public static bool CheckRequestAuthentication(string Token, out SSOUserLoginInfors Us)
        {
            Us = null;
            SSOLoginMessage Tm;

            if (Token != null && !Token.Equals(""))
            {
                if (UsersLoggedIn.TryGetValue(Token, out Us))
                {
                    //xử lý khi cookie quá hạn
                    if (SSOHTTPRequestService.CheckExpired(Us.UserCookie))
                    {
                        if (UsersLoggedIn.TryRemove(Token, out Us))
                        {
                            Tm         = new SSOLoginMessage();
                            Tm.Token   = Token;
                            Tm.User    = Us.User.TENDANGNHAP;
                            Tm.Message = "Phiên làm việc đã kết thúc, vui lòng đăng nhập lại";
                            Tm.Expires = DateTime.Now.AddMinutes(Config.AUTH_COOKIE_TIMEOUT_IN_MINUTES);
                            TokenMessage.AddOrUpdate(Token, Tm,
                                                     (key, existingVal) =>
                            {
                                existingVal = Tm;
                                return(existingVal);
                            });
                        }
                        UserToken.TryRemove(Us.User.TENDANGNHAP, out Token);
                        return(false);
                    }

                    //xử lý khi token quá hạn
                    if (SSOHTTPRequestService.CheckExpired(Us))
                    {
                        if (UsersLoggedIn.TryRemove(Token, out Us))
                        {
                            Tm         = new SSOLoginMessage();
                            Tm.Token   = Token;
                            Tm.User    = Us.User.TENDANGNHAP;
                            Tm.Message = "Token hết hạn, vui lòng đăng nhập lại";
                            Tm.Expires = DateTime.Now.AddMinutes(Config.AUTH_COOKIE_TIMEOUT_IN_MINUTES);
                            TokenMessage.AddOrUpdate(Token, Tm,
                                                     (key, existingVal) =>
                            {
                                existingVal = Tm;
                                return(existingVal);
                            });
                        }
                        UserToken.TryRemove(Us.User.TENDANGNHAP, out Token);
                        return(false);
                    }

                    return(true);
                }
            }

            return(false);
        }
Example #2
0
        private static void CheckAndReleaseData(SSOUserLoginInfors Us)
        {
            Us = null;
            SSOLoginMessage Tm;
            string          Token = "";

            //xử lý khi cookie quá hạn
            if (SSOHTTPRequestService.CheckExpired(Us.UserCookie))
            {
                if (UsersLoggedIn.TryRemove(Us.Token, out Us))
                {
                    Tm         = new SSOLoginMessage();
                    Tm.Token   = Us.Token;
                    Tm.User    = Us.User.TENDANGNHAP;
                    Tm.Message = "Phiên làm việc đã kết thúc, vui lòng đăng nhập lại";
                    Tm.Expires = DateTime.Now.AddMinutes(Config.AUTH_COOKIE_TIMEOUT_IN_MINUTES);
                    TokenMessage.AddOrUpdate(Us.Token, Tm,
                                             (key, existingVal) =>
                    {
                        existingVal = Tm;
                        return(existingVal);
                    });
                }
                UserToken.TryRemove(Us.User.TENDANGNHAP, out Token);
            }

            //xử lý khi token quá hạn
            if (SSOHTTPRequestService.CheckExpired(Us))
            {
                if (UsersLoggedIn.TryRemove(Us.Token, out Us))
                {
                    Tm         = new SSOLoginMessage();
                    Tm.Token   = Us.Token;
                    Tm.User    = Us.User.TENDANGNHAP;
                    Tm.Message = "Token hết hạn, vui lòng đăng nhập lại";
                    Tm.Expires = DateTime.Now.AddMinutes(Config.AUTH_COOKIE_TIMEOUT_IN_MINUTES);
                    TokenMessage.AddOrUpdate(Us.Token, Tm,
                                             (key, existingVal) =>
                    {
                        existingVal = Tm;
                        return(existingVal);
                    });
                }
                UserToken.TryRemove(Us.User.TENDANGNHAP, out Token);
            }
        }
Example #3
0
        private static void CheckAccountLoginAndAdd(SSOUserLoginInfors Us)
        {
            string             Token;
            SSOLoginMessage    Tm;
            SSOUserLoginInfors oldValue;

            //nếu đây là login từ máy khác
            if (UserToken.ContainsKey(Us.User.TENDANGNHAP))
            {
                //remove token cũ
                if (UserToken.TryRemove(Us.User.TENDANGNHAP, out Token))
                {
                    if (UsersLoggedIn.TryRemove(Token, out oldValue))
                    {
                        Tm         = new SSOLoginMessage();
                        Tm.Token   = Token;
                        Tm.User    = Us.User.TENDANGNHAP;
                        Tm.Message = "Tài khoản vừa được đăng nhập ở một vị trí khác";
                        Tm.Expires = DateTime.Now.AddMinutes(Config.AUTH_COOKIE_TIMEOUT_IN_MINUTES);
                        TokenMessage.AddOrUpdate(Token, Tm,
                                                 (key, existingVal) =>
                        {
                            existingVal = Tm;
                            return(existingVal);
                        });
                    }
                }
            }

            //cập nhật lại thông tin token mới theo user
            UserToken.AddOrUpdate(Us.User.TENDANGNHAP, Us.Token,
                                  (key, existingVal) =>
            {
                existingVal = Us.Token;
                return(existingVal);
            });

            //cập nhật lại toàn bộ thông tin user đang đăng nhập
            UsersLoggedIn.AddOrUpdate(Us.Token, Us,
                                      (key, existingVal) =>
            {
                existingVal = Us;
                return(existingVal);
            });
        }
        // GET: Authenticate
        public ActionResult Login()
        {
            SSOLoginMessage    tm = null;
            SSOUserLoginInfors ui = null;
            string             tk = null;
            var par = SSOHTTPRequestService.GetRequestParams(Request);

            ViewBag.ReturnUrl = par == null ? "" : (par.ReturnUrl == null ? "" : par.ReturnUrl);
            if (par != null && par.Token != null && !par.Token.Equals(""))
            {
                if (UserManagerService.TokenMessage.TryRemove(par.Token, out tm))
                {
                    ViewBag.TB = tm.Message;
                }

                if (UserManagerService.UsersLoggedIn.TryRemove(par.Token, out ui))
                {
                    UserManagerService.UserToken.TryRemove(ui.User.TENDANGNHAP, out tk);
                }
            }
            return(View());
        }