Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

178
Visualizações
Cómo implementar la autenticación personalizada en ASP.NET MVC 5

Estoy desarrollando una aplicación ASP.NET MVC 5. Tengo una base de datos existente, a partir de la cual creé mi modelo de datos de entidad ADO.NET. Tengo una tabla en esa base de datos que contiene la columna "nombre de usuario" y "contraseña", y quiero usarlas para implementar la autenticación y autorización en mi aplicación web; No puedo crear ninguna otra base de datos, tabla o columna y no puedo usar la autenticación de identidad estándar debido a los requisitos del cliente. No necesito administrar el registro, el cambio de contraseña u otras cosas: solo inicie sesión con contraseña y nombre de usuario. ¿Cómo puedo hacer eso?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Sí tu puedes. Las partes de autenticación y autorización funcionan de forma independiente. Si tiene su propio servicio de autenticación, puede usar la parte de autorización de OWIN. Considere que ya tiene un UserManager que valida el nombre de username y password . Por lo tanto, puede escribir el siguiente código en su acción de inicio de sesión posterior:

 [HttpPost] public ActionResult Login(string username, string password) { if (new UserManager().IsValid(username, password)) { var ident = new ClaimsIdentity( new[] { // adding following 2 claim just for supporting default antiforgery provider new Claim(ClaimTypes.NameIdentifier, username), new Claim("http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider", "ASP.NET Identity", "http://www.w3.org/2001/XMLSchema#string"), new Claim(ClaimTypes.Name,username), // optionally you could add roles if any new Claim(ClaimTypes.Role, "RoleName"), new Claim(ClaimTypes.Role, "AnotherRole"), }, DefaultAuthenticationTypes.ApplicationCookie); HttpContext.GetOwinContext().Authentication.SignIn( new AuthenticationProperties { IsPersistent = false }, ident); return RedirectToAction("MyAction"); // auth succeed } // invalid username or password ModelState.AddModelError("", "invalid username or password"); return View(); }

Y su administrador de usuarios puede ser algo como esto:

 class UserManager { public bool IsValid(string username, string password) { using(var db=new MyDbContext()) // use your DbConext { // for the sake of simplicity I use plain text passwords // in real world hashing and salting techniques must be implemented return db.Users.Any(u=>u.Username==username && u.Password==password); } } }

Al final, puede proteger sus acciones o controladores agregando un atributo Authorize .

 [Authorize] public ActionResult MySecretAction() { // all authorized users can use this method // we have accessed current user principal by calling also // HttpContext.User } [Authorize(Roles="Admin")] public ActionResult MySecretAction() { // just Admin users have access to this method }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda