none
Autenticar usuario de Dominio con ASP.Net MVC RRS feed

  • Pregunta

  • Saludos,

    Estoy tratando de crear una aplicacion que me permita verificar si el usuario logueado es un usuario del Dominio. El codigo para confirmar es el siguiente:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.DirectoryServices;
    using System.DirectoryServices.ActiveDirectory;
    using Autenticacion.Models;
    
    namespace Autenticacion.Auth
    {
        public class AuthDomain
        {
            // *************** AUTENTICAR USER ON DOMAIN **************
    
            private bool Authenticate(string userName,
            string password, string domain)
            {
                bool authentic = false;
                try
                {
                    DirectoryEntry entry = new DirectoryEntry("LDAP://INE",
                        userName, password);
                    object nativeObject = entry.NativeObject;
                    authentic = true;
                }
                catch (DirectoryServicesCOMException) { }
                return authentic;
            }
    
            // *************** FIN AUTENTICACION ***************
        }
    }

    Gracias por su ayuda.


    MMoreta

    viernes, 8 de junio de 2012 16:02

Respuestas

  • Hola,

    Si tu aplicación necesita que los usuarios sean del directorio activo no entiendo por qué simplemente no configuras la autentificación de la aplicación como autentificación Windows:

    ...
     <system.web>
      ...
      <authentication mode="Windows"/>
      ...
     </system.web>
     ...
    

    Si estás usando autentificación forms ¿por qué no usas Active Directory MemberShip Provider ?

    http://msdn.microsoft.com/en-us/library/ff650308.aspx

    En una aplicación ASP.NET MVC 2 que hicimos los usuarios podían ser del directorio activo o no. Configuramos autentificación forms y creamos nuesto custom membership provider que se apoyaba en Active Directory MemberShip Provider y ASP.NET MemberShip Provider.

    Ahora tenemos una aplicación con autentificación Windows que para ciertas operaciones el usuario tiene que volver a meter el nombre de usuario y contraseña del dominio. Esas credenciales las validamos con las clases del espacio de nombres System.DirectoryServices.AccountManagement:

    http://stackoverflow.com/questions/290548/c-sharp-validate-a-username-and-password-against-active-directory

    Espero haberte sido de ayuda.

    • Marcado como respuesta MMoreta miércoles, 20 de junio de 2012 13:26
    sábado, 9 de junio de 2012 9:58