Example #1
0
 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);
     }
 }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
        }