private static Task <bool> VerifyClientIdAsync(UsuarioAdmManager manager, UsuarioAdm user, CookieValidateIdentityContext context)
        {
            string clientId = context.Identity.FindFirstValue("AspNet.Identity.ClientId");

            if (!string.IsNullOrEmpty(clientId) && user.Clients.Any(c => c.Id.ToString() == clientId))
            {
                user.CurrentClientId = clientId;
                return(Task.FromResult(true));
            }

            return(Task.FromResult(false));
        }
        public async Task <ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Manage"));
            }

            if (ModelState.IsValid)
            {
                // Pegar a informação do login externo.
                var info = await AuthenticationManager.GetExternalLoginInfoAsync();

                if (info == null)
                {
                    return(View("ExternalLoginFailure"));
                }
                var user = new UsuarioAdm {
                    UserName = model.Email, Email = model.Email
                };
                var result = await UserManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await UserManager.AddLoginAsync(user.Id, info.Login);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        var userext = UserManager.FindByEmailAsync(model.Email);
                        await SignInAsync(userext.Result, false);

                        return(RedirectToLocal(returnUrl));
                    }
                }
                AddErrors(result);
            }

            ViewBag.ReturnUrl = returnUrl;
            return(View(model));
        }
        private async Task SignInAsync(UsuarioAdm user, bool isPersistent)
        {
            var clientKey = Request.Browser.Type;
            await UserManager.SignInClientAsync(user, clientKey);

            // Zerando contador de logins errados.
            await UserManager.ResetAccessFailedCountAsync(user.Id);

            // Coletando Claims externos (se houver)
            ClaimsIdentity ext = await AuthenticationManager.GetExternalIdentityAsync(DefaultAuthenticationTypes.ExternalCookie);

            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie, DefaultAuthenticationTypes.TwoFactorCookie, DefaultAuthenticationTypes.ApplicationCookie);
            AuthenticationManager.SignIn
            (
                new AuthenticationProperties {
                IsPersistent = isPersistent
            },
                // Criação da instancia do Identity e atribuição dos Claims
                await user.GenerateUserIdentityAsync(UserManager, ext)
            );
        }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new UsuarioAdm
                {
                    UserName    = model.Email,
                    Email       = model.Email,
                    Nome        = model.Nome,
                    Cpf         = model.Cpf,
                    Sobrenome   = model.Sobrenome,
                    DddTelefone = model.DddTelefone,
                    Telefone    = model.Telefone,
                    DddCelular  = model.DddCelular,
                    Celular     = model.Celular,
                    FlgAtivo    = model.FlgAtivo,
                    DtCadastro  = model.DtCadastro
                };
                var result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Lista", "Account"));

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771

                    /*
                     * var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                     * var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                     * await UserManager.SendEmailAsync(user.Id, "Confirme sua Conta", "Por favor confirme sua conta clicando neste link: <a href='" + callbackUrl + "'></a>");
                     * ViewBag.Link = callbackUrl;
                     * return View("DisplayEmail");
                     * */
                }
                AddErrors(result);
            }

            // No caso de falha, reexibir a view.
            return(View(model));
        }
        private static async Task <bool> VerifySecurityStampAsync(UsuarioAdmManager manager, UsuarioAdm user, CookieValidateIdentityContext context)
        {
            string stamp = context.Identity.FindFirstValue("AspNet.Identity.SecurityStamp");

            return(stamp == await manager.GetSecurityStampAsync(context.Identity.GetUserId()));
        }
示例#6
0
 private void button1_Click(object sender, EventArgs e)
 {
     UsuarioAdm user = new UsuarioAdm(this.txtUsuario.Text.ToString(), this.txtPw.Text.ToString());
 }