//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); }
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); } }
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()); }