コード例 #1
0
        private void LoginButton_Click()
        {
            content.Message.Value = string.Empty;

            if (userAuthentication == null)
            {
                content.Message.Value = Resources.LoginNotAvailable;
                return;
            }

            if (!content.IsValid)
            {
                return;
            }

            var result = userAuthentication.Authenticate(content.UserId.Value, content.Password.Value);

            if (result.Success)
            {
                navigator.NavigateTo(new UserContent(content.UserId.Value));
            }
            else
            {
                content.Message.Value = Resources.LoginFailureMessage;
            }
        }
コード例 #2
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

            _userAuthentication.Authenticate(context.UserName, context.Password);

            if (!_userAuthenticateNotification.HasNotifications())
            {
                context.SetError("invalid_grant", "Usuário ou senha inválidos!");
                return;
            }
            var user = _userAuthenticateNotification.Notify().First();


            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            identity.AddClaim(new Claim(ClaimTypes.Name, user.UserName));
            var principal = new GenericPrincipal(identity, new string[] { user.UserName });

            Thread.CurrentPrincipal = principal;

            context.Validated(identity);
        }
コード例 #3
0
 public async Task <IActionResult> Login(UserViewModel model)
 {
     return(Ok(await _userService.Authenticate(model)));
 }