public void DeAuthenticateCurrentUser() { AppIdentity.AppPrincipal customPrincipal = Thread.CurrentPrincipal as AppIdentity.AppPrincipal; if (customPrincipal != null) { var userName = customPrincipal.Identity.Name; OnDeAuthenticating?.Invoke(userName); customPrincipal.Identity = new AppIdentity.AnonymousIdentity(); UserAccessor.Instance.Identity = customPrincipal.Identity; OnDeAuthenticated?.Invoke(userName); } }
private SecurityManager(IRepository <UserData> repository) { UserRepository = repository; Service = new AuthenticationService(repository); Principal = new AppIdentity.AppPrincipal(); SecurityProvider.Create(Service); if (System.Threading.Thread.CurrentPrincipal?.GetType() != typeof(AppIdentity.AppPrincipal)) { System.Threading.Thread.CurrentPrincipal = Principal; AppDomain.CurrentDomain.SetThreadPrincipal(Principal); } }
private User AuthenticateUser(UserData userData) { var user = new User(userData.Username, userData.Email, userData.Roles.ToArray(), userData.CanUserChangePassword, userData.Level); AppIdentity.AppPrincipal customPrincipal = Thread.CurrentPrincipal as AppIdentity.AppPrincipal; if (customPrincipal == null) { throw new ArgumentException(strings.CustomPrincipalError); } //Authenticate the user customPrincipal.Identity = new AppIdentity(user.UserName, user.Email, user.Roles, user.CanUserChangePassword, user.Level); UserAccessor.Instance.Identity = customPrincipal.Identity; OnUserAuthenticateSuccess?.Invoke(user.UserName); SetUserTimedOutDeAuthentication(userData.LogoutTime); return(user); }