Пример #1
0
        public async Task <ISS.Authentication.Public.Domain.ViewModels.User> Build(ISS.Authentication.Domain.Models.User user)
        {
            ISS.Authentication.Public.Domain.ViewModels.User _viewUser = new ISS.Authentication.Public.Domain.ViewModels.User();
            _viewUser.Id             = user.Id;
            _viewUser.UserName       = user.UserName;
            _viewUser.HasPassword    = (user.PasswordHash != "");
            _viewUser.SecurityStamp  = user.SecurityStamp;
            _viewUser.Email          = user.Email;
            _viewUser.EmailConfirmed = user.EmailConfirmed;
            _viewUser.FirstName      = user.FirstName;
            _viewUser.LastName       = user.LastName;
            IList <UserLoginInfo> _logins = await _unitOfWork.UserStore.GetLoginsAsync(user);

            foreach (UserLoginInfo _login in _logins)
            {
                _viewUser.Logins.Add(new ISS.Authentication.Public.Domain.ViewModels.Login()
                {
                    LoginProvider = _login.LoginProvider, ProviderKey = _login.ProviderKey
                });
            }
            return(_viewUser);
        }
Пример #2
0
        public async Task <ManageInfoViewModel> GetManageInfo(string returnUrl, bool generateState = false)
        {
            ISS.Authentication.Public.Domain.ViewModels.User user = await _userFactory.Build(new Guid(User.Identity.GetUserId()));

            if (user == null)
            {
                return(null);
            }

            List <UserLoginInfoViewModel> logins = new List <UserLoginInfoViewModel>();

            foreach (ISS.Authentication.Public.Domain.ViewModels.Login linkedAccount in user.Logins)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = linkedAccount.LoginProvider,
                    ProviderKey   = linkedAccount.ProviderKey
                });
            }

            if (user.HasPassword == true)
            {
                logins.Add(new UserLoginInfoViewModel
                {
                    LoginProvider = LocalLoginProvider,
                    ProviderKey   = user.UserName,
                });
            }

            return(new ManageInfoViewModel
            {
                LocalLoginProvider = LocalLoginProvider,
                Email = user.UserName,
                Logins = logins,
                ExternalLoginProviders = GetExternalLogins(returnUrl, generateState)
            });
        }
Пример #3
0
        public async Task <IHttpActionResult> ConfirmToken([FromBody] string token)
        {
            PasswordResetToken _token = await UnitOfWork.PasswordResetTokenStore.FindByToken(token);

            if (_token == null)
            {
                return(BadRequest("Invalid Token"));
            }
            if (_token.Expires < DateTime.Now)
            {
                return(BadRequest("Expired Token"));
            }
            if (_token.Used.HasValue)
            {
                return(BadRequest("Token Already Used"));
            }
            ISS.Authentication.Public.Domain.ViewModels.User _user = await UserFactory.Build(_token.UserId);

            if (_user == null)
            {
                return(BadRequest("User not Found"));
            }
            return(Ok(_user));
        }