NET Fuera de la PC

ASP NET 3.5 Client Application Services

Muchas veces tenemos la necesidad de validar usuarios y en muchos lugares se muestran diferentes mecanismos de autenticación, unas de las características que los desarrolladores venían solicitando era poder implementar MemberShips y Role provider den ASP NET que dicho sea de paso es muy útil pero que no estaba disponible en aplicaciones Windows , ahora con FrameWork 3.5 y Visual Studio 2008 si y de eso será lo que comentemos en este ejemplo :

Como se Implementa?

Pues vamos a crear un ejemplo que nos permita implementar la seguridad de ASP NET en nuestra aplicación Windows lo que necesitaremos sea lo siguiente:

1-Usaremos una base Datos SQL  (Que almacenara los usuarios para acceder en ese caso usaremos la base de datos NorthWind).
2-Una Aplicacion Web ASP NET con AJAX (Esto para que exponga los servicios para la autenticación y autorización a través de de la interfaz del proveedor).
3-Una Aplicacion Windows (Que consumirá el servicio y nos muestren la autenticación).

 

Como mencionamos usaremos nuestra base de Datos NorthWind para almacenar la información del usuario ejecutamos C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql
Imagen1
Seleccionamos el Server y la base de Datos en este caso usare una base de datos existente que es NorthWind
Imagen2
Notemos que se creo las SQLProvider tables ,vistas y procedimientos , como sabemos todos estos los reconocemos por el prefijo "aspnet_"
Imagen3
Creamos una solución y 2 Proyectos un Proyecto Win Form y un proyecto ASP NET en el archivo config escribiremos el codigo que se muestra en el apartado web.config

<!-- Agregamos la Cadena de Conexion a nuestra base de Datos NorthWind -->
<connectionStrings>
    <add name="ExampleConnectionString" connectionString="data source=.\SQLEXPRESS;Integrated Security=True;DataBase=NorthWind" providerName="System.Data.SqlClient"/>       
</connectionStrings>

<!-- La Atentificacion es de tipo forms -->
<authentication mode="Forms" />

<!-- Configuramos el MemberShip -->
<membership defaultProvider="ExampleSqlProvider">
    <providers>
        <clear/>
        <add name="ExampleSqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ExampleConnectionString" applicationName="ASPNETApplicationServicesDemo"/>
    </providers>
</membership>

<!-- Configuramos el RoleManager -->
<roleManager enabled="true" defaultProvider="ExampleSqlRoleProvider">
    <providers>
        <clear/>
        <add name="ExampleSqlRoleProvider" connectionStringName="ExampleConnectionString" applicationName="ASPNETApplicationServicesDemo" type="System.Web.Security.SqlRoleProvider"/>
    </providers>
</roleManager>

<!-- Exponemos el Servicio a traves de AJAX -->
<system.web.extensions>
    <scripting>
        <webServices>
            <authenticationService enabled="true"/>
            <roleService enabled="true"/>
        </webServices>
    </scripting>
</system.web.extensions>

imagen4
Para nuestra demo nos iremos a la ventana explorador de soluciones y crearemos 2 usuarios si todo esta bien configurado no deberá ver problemas al crear nuestros usuarios (como se ve en la figura)
imagen5
Bien ahora nos iremos al proyecto Windows y activaremos su ventana de propiedades , en la ventana activamos la opción Services luego habilitamos la casilla "Enable client application services" y en "authentication services location " digitamos
http://localhost:49707/Web y en "Web settings service location" tambien digitamos http://localhost:49707/Web , dirección de nuestra aplicación web
imagen6
Luego agregaremos 2 referencias System.Web y System.Web.Extensions y dibujamos en un formulario Windows nuestra interfaz para validar nuestro usuario y contraseña
imagen7
Y bueno para Finalizar solo implementamos un pequenno codigo para hacer nuestra prueba usando el System.Web.Security.MemberShip.ValidateUser y listo si se fijan en la figura ingreso el nombrendel usuario el password y validamos, bueno ahora podemos implementar la seguridad en ASP NET en nuestras aplicaciones Winforms , este es mi primer post espero que no sean muchos gráficos y espero también que ahora puedan implementar de inmediato esta nueva característica de VS 2008 .

Un Saludo a todos
imagen8
 
Deja tu comentario

(requerido) 

(requerido) 

(opcional)

(requerido)