示例#1
0
        public ActionResult Cadastrar(Usuario usuario)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index").Error("Erro ao realizar cadastro"));
            }
            if (usuarioRepository.BuscarPorLogin(usuario.Login) != null)
            {
                return(RedirectToAction("Index").Error("Este login já está em uso"));
            }
            usuario.CriarUsuario(usuario.Senha);
            usuarioRepository.Adicionar(usuario);
            var usuarioCadastrado = usuarioRepository.BuscarPorLogin(usuario.Login);
            var identity          = new ClaimsIdentity(new[]
            {
                new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "ASP.NET Identity"),
                new Claim(ClaimTypes.NameIdentifier, usuarioCadastrado.UsuarioId.ToString()),
                new Claim(ClaimTypes.Authentication, usuarioCadastrado.Login),
                new Claim(ClaimTypes.Name, usuarioCadastrado.Nome),
                new Claim(ClaimTypes.Role, Enum.GetName(typeof(TipoUsuario), usuarioCadastrado.TipoUsuario)),
            }, "ApplicationCookie");

            Request.GetOwinContext().Authentication.SignIn(identity);
            return(RedirectToAction("Index", "Home", new { area = "User" }).Success($"Usuário Cadastrado, Bem vindo {usuarioCadastrado.Nome}"));
        }