public DbRepository(AuthInfo authInfo) { _authInfo = authInfo; _instanceId = authInfo.CompanyId; _context = new FilteredContext(authInfo.CompanyId); _releaseContext = true; }
public string AddAuth(AuthInfo authInfo) { string token = GetUniqueToken(); authInfo.LastActiveDate = DateTime.UtcNow; authInfo.Token = token; _dict[token] = authInfo; return token; }
public bool IsAuthenticationExpired(AuthInfo authInfo) { if(authInfo != null) { TimeSpan diff = DateTime.UtcNow.Subtract(authInfo.LastActiveDate); if (diff.Minutes < SESSION_EXPIRATION_IN_MINUTES) return false; } return true; }
public LoginResult Logon(LogonArg arg) { var user = GetUserByLoginAndPassword(arg); if (user == null) return new LoginResult { ErrorMessage = Messages.WrongLoginOrPassword }; if (!user.IsActive) return new LoginResult { ErrorMessage = Messages.UserEmailUnapproved }; var authInfo = new AuthInfo { UserId = user.UserId }; var token = AuthTokens.Instance.AddAuth(authInfo); return arg.DefaultInstanceId != 0 ? LogonToInstance(token, arg.DefaultInstanceId) : LogonUserWithoutInstance(token, user.UserId); }