Autenticacion WindowsPrincipal vs GenericPrincipal
Si queremos realizar una aplicacion que trabaje entre varios sistemas tenemos varias opciones, cualquier comunicación entre el cliente y la aplicación debe pasar primero por servidor Web (IIS, por ejemplo), y como segundo paso podemos hacer que cualquier proceso que se ejecute en un servidor Windows lo haga como usuarios de una cuenta del sistema o una BBDD.
Los elementos que controlan una autorizacion en ASP.NET son:
- Listas de control de acceso de Windows (ACL)
- Permisos de servidor Web
- Autorización de URL
- Objetos Principal de .NET
- Seguridad de nivel de método y funciones
En este articulo queremos destacar las referentes a los objetos:
Objeto WindowsPrincipal
Este objeto se utiliza cuand queremos realizar una autenticacion de las cuentas de usuario de un sistema Windows a traves del IIS, asi se ajustara a los permisos que posea dicho usuario en dicha maquina. O directamente poder autenticar a todos los usuarios de cierto dominio sin tener que crear nuevas cuentas o al realizar una aplicacion para una intranet.
WindowsIdentity MyIdentity = WindowsIdentity.GetCurrent();
WindowsPrincipal MyPrincipal = new WindowsPrincipal(MyIdentity);
Objeto GenericPrincipal
Es la forma de poder autenticar a usuarios cuando los datos los tenemos dentro de una BBDD propia, y deseamos usar nuestras clases particulares. Puede trabajar sobre el objeto principal del evento OnAuthenticate. Para saber que usuarios estan autenticados, puede utilizar una cookie.
GenericIdentity MyIdentity = new GenericIdentity("MyUser"); String[] MyStringArray = {"Manager", "Teller"}; GenericPrincipal MyPrincipal = new GenericPrincipal(MyIdentity, MyStringArray); Thread.CurrentPrincipal = MyPrincipal;
PD. El codigo ha sido obtenido de la gran biblioteca de .NET (MSDN) nunca olvideis visitarla.