System.Collections.ListofTips

January 29, 2008

Membership – Caso Práctico – Parte 2

Filed under: ASP.net — Tags: — José Franco @ 12:19 pm

Bueno, ya como configurar en aspecto de base de datos, a la Membership…
Nuestro sitio tendría una Página de Login, en este caso creo Login.aspx…

En mi caso genero una página con este estilo

Voy a la barra de tares y uso el Control Login

Que finalmente insertado, nos quedaría

Este control trae muchas opciones para personalizar su diseño, pero no me interesa… solo funcionalmente…

Acá solo tendríamos que modificar el FailureText, ya que a veces da errores muy genéricos, cuando te queres loguear. En lo personal, me paso que estaba insertando datos inválidos, y me decía que no se podía conectar a la base de datos. Así que por las dudas solo le pones un “Error, datos inválidos”.

Otro atributo a configurar es el MembershipProvider, pero si se acuerda en mi post anterior puse uno por defecto, así con dejarlo en blanco andaría. En caso de tener varios, tendríamos que configurar cual usaríamos…

Levantamos nuestra aplicación… seteando previamente a la página de Login como la página de inicio, probamos en ingresar credenciales inválidas…

Perfecto, ahora volvemos a intentar con un usuario que realmente existe… y van a ser re direccionados al Default.aspx … de todos modos, si ustedes hubieran escrito a mano la dirección, omitiendo el logueo, también podría haber ingresado al sitio, ya que nunca definimos que paginas, puede ver un usuario anónimo y cual no…

En nuestro caso, la default la verían los dos… pero ahora vamos a generar una página que sea “EditProfile.aspx” que en teoría solo pueden verla los usuarios registrados.

Por ahora no le ponemos ningún contenido, solo es una página vacía.

Y en el Web.Config ingresamos esto, fuera del nodo de <System.Web>

<location
path=EditProfile.aspx>
<
system.web>
<
authorization>
<
deny
users=?/>
</
authorization>
</
system.web>
</
location>

Y escribimos su dirección

Vamos a ver que nos re direcciona al login.aspx

Una vez que autentificamos, nos va a retornar a la pagina que queríamos visualizar.

Lo que configuramos en el Web.Config, es bastante simple para explicarlo, solo denegamos el acceso a los usuarios anónimos.

Aplicamos un diseño acorde a esta página…

Y usamos el control ChangePassword, para dar la posibilidad de cambiar el password al usuario.

Arrastrarlo en el contenido principal


Como en el caso anterior, puede personalizar todo el diseño, desde las propiedades, como los literales

Y solo configuramos “SucessPageUrl” que sería la pagina en donde re direccionaría en caso de cambiar correctamente la contraseña.

Lo testeamos, y vemos que anda correctamente, la opción de Cambiar la contraseña.

Si son de entrar a foros, y portales que interactúan con el usuario, dirán… donde esta la opcion de logout…

Vamos a la barra de herramientas, y usamos el control

Que nos quedaría en la aplicación

También podemos usar controles como

Que solo imprime el usuario logueado

Como verán, los componentes nos facilitan muchas de las actividades comunes que se suele hacer en la administración del usuario.

Ya tenemos, una página de Logueo y otra para modificar la contraseña del usuario logueado.

Ahora volvemos a nuestro sitio de demostración que tenemos en Default.aspx…

Usamos el control LoginView

Y lo arrastramos a donde tenemos el Buscador de Empleados

Tenemos dos tipos de Templates, uno para los Anónimos, y otros para los usuarios Logueados, en este caso vamos a usar el “LoggedInTemplate”

Y arrastramos nuestro contenido dentro del mismo. Lo mismo, para las otras áreas, solo visibles para los usuarios Logueados.

Una vez definido, configuramos Default.aspx como la pagina inicial… y levantamos la aplicación, y verán que los contenidos no son visibles para los usuarios que no están Logueados.

Usamos un LoginView y un Control de LoginStatus, para mostrarles a los usuarios anónimos la posibilidad de re direccionarlos a la página de logueo

Y corriendo la aplicación nos quedaría

Pueden testear, y esta andando correctamente la visualización…

Lo dejo hasta acá, para no extenderlo demasiado, ya que nos quedaría la creación de usuarios, y empezar a ver cómo manejar los Roles.

El ejemplo de este post, está en el Sitio del grupo de google, dejo el link…

http://groups.google.com.ar/group/developersdotnet/web/Membership_PostPart2.rar

Saludos.

Microsoft Listas!

Filed under: Otros, Resources — José Franco @ 3:47 am

Les dejo para que testeen un nuevo servicio de Microsoft, es para compartir Listas de lo que quieran….
http://listas.labs.live.com

We have added a host of new features and improved designs to Listas today. A fresh home page design and updated community page make finding relevant information even easier. New community lists like popular tags, recently created lists, and top users are all now available both in Listas and through RSS. For fellow GTD fans, there are now task lists. Improvements to printing support, history and version management, and many other additions and refinements round out the update. You can check out the newly updated Listas technology preview as always at http://listas.labs.live.com.

Membership – Caso Práctico – Parte 1

Filed under: ASP.net — Tags: — José Franco @ 12:54 am

Bueno vamos, a ver un caso práctico sobre la Membership y los controles involucrados.
Estoy trabajando sobre el Framework 2, aviso por las dudas.

Supongamos en caso, que tenemos un sitio andando… como el que usamos en Thales… un portal de extranet para los empleados…


Bárbaro, pero por ahora no tenemos el concepto si el usuario esta registrado o no realmente, el contenido es visible por todos…

Ahora, si nosotros tomáramos criterios… sobre qué elementos son públicos o privados, por ejemplo este caso…


Ahora, recordemos los modos de autentificación que tenemos para una aplicación Web.

ASP.Net 2 nos provee:

  • Windows Authentication
  • Forms Authentication
  • Passport Authentication

Dentro de la de Windows, tenemos distintas opciones:

  • Basic Authentication (Envía las credenciales en texto plano, para este tipo habría que considerar aplicar algún tipo de seguridad sobre el transporte, por ejemplo SSL)
  • Digest Authentication (Utiliza un hash para la contraseña)
  • Windows Integrated Authentication (Esta creo que es la más conocida, ya que usa el Active Directory)

Para este ejemplo, vamos a usar un autentificación Form.

Entonces nos quedaría:

  • Buscador de Personas
  • Menú de Acceso
  • Eventos

Solo visible para usuarios registrados en el sitio. Para ir contemplando el concepto de administración de usuarios, tendríamos que caer en el modelo de la Membership… para esto tendríamos que caer en instalar el esquema que usa aspnetdb para esto.

Dentro del IDE de desarrollo, vamos a WebSite / ASP.NET Configuration


Esto nos va a abrir una aplicación Web


Destinada para la configuración de algunos aspectos de nuestra aplicación.


Como verán aspectos, de Seguridad, de la aplicación y del Proveedor. En este caso vamos a la solapa de Seguridad.


Usamos el asistente paso a paso, cabe aclarar que todo esto se puede hacer a mano, pero el asistente facilita varios detalles.


Como verán ofrece dos tipos de gestión de Seguridad. Uno desde Internet, con la autentificación del tipo Webform, por intranet con Active Directory.


Acá además nos permite, definir roles… los tipos grupos de usuarios como administradores, usuarios, etc.… Por defecto viene desactivado.



El mismo asistente nos permite generar usuarios desde la herramienta, la cantidad que deseemos. Obviamente que si estamos trabajando con la autentificación vía web, ya que la Active Directory, no depende de nosotros.


Y posteriormente las rutas de acceso, que ve cada usuario o roles… es muy simple este proceso de configuración


Al finalizar…


Bueno eso fue de modo muy express para ver todo, pero no les parece raro que jamás dijimos donde guardar toda esta información pertinente a los usuarios y demás, si se fijan en el webconfig, ya están definidos, los roles, y/o rutas que definimos permisos. Pero los usuarios es obvio que no se almacenarían ahí.

El problema pasa por que se uso el AspNetSqlProvider por defecto, que apunta a localhost y a la base de datos aspnetdb. No nuestra base de datos.

Lamentablemente el esquema a usar, no podemos cambiarlo, salvo que generemos nuestro provider… cosa que con suerte lo voy a publicar más adelante

La única forma para obligar a usar nuestra base de datos, es remover desde las ConnectionString a “LocalSqlServer”, y apuntarlo a nuestra base de datos.


O tambien podriamos borrr el provider por defecto de la Membership y de los Roles, y apuntarlos a nuestra connectionstrings para estos… Por ejemplo:

<membership
defaultProvider=SqlCustomProvider
userIsOnlineTimeWindow=15>
<
providers>
<
clear />
<
add
name=SqlCustomProvider
type=System.Web.Security.SqlMembershipProvider
connectionStringName=NorthwindConnectionString
applicationName=MemberShipBasic
enablePasswordRetrieval=true
enablePasswordReset=true
requiresQuestionAndAnswer=true
requiresUniqueEmail=true
passwordFormat=Clear />
</
providers>
</
membership>
<
roleManager
enabled=true
cacheRolesInCookie=true
defaultProvider
=SqlCustomProvider>
<
providers>
<
clear />
<
add
connectionStringName=NorthwindConnectionString
applicationName
=MyApplication
name=SqlCustomProvider
type
=System.Web.Security.SqlRoleProvider />
</
providers>
</
roleManager>

Como veran estoy diciendo que tome como la ConnectionString a “Northwind”

<connectionStrings>
<
clear />
<
add
name=NorthwindConnectionString
connectionString
=Data Source=127.0.0.1\SQLExpress;Initial Catalog=Northwind; User ID=sa; Password=xxxxx; />

</connectionStrings>

Como veran hay muchos parametros para personalizar nuestra membership, pero eso se los dejo de tarea a ustedes.aaa09o09oo090

Si ejecutamos de nuestro el asistente, vamos a la parte de proveedores, y testeamos el proveedor


Van a ver que lo más seguro, es que les surja un problema…


Esto es debido a que no tenemos su esquema de tablas, y demás componentes… la solución para esto, seria ejecutar el aspnet_regsql que se encuentra dentro de

xx:\%windir%\Microsoft.NET\Framework\%version%

Este tema, es muy simple, de todos modos yo había publicado algo en mi sitio personal

http://josefranco.info/2008/01/24/registrar/

Bueno, lo dejo hasta acá… lo continuo en un post nuevo, para que no se extienda demasiado… Saludos.

January 28, 2008

Importante

Filed under: Otros — José Franco @ 9:59 pm

Acabo de eliminar el articulo de Membership, ya que encontre unos errores para no decir horrores, lo corrijo, y lo vuelvo a postear.

Sepan disculpan, saludos.

January 27, 2008

Conferencia Online MSDN Introducción a ASP.NET

Filed under: ASP.net, Capacitación, Resources — José Franco @ 8:37 pm

Les dejo mas info, imagino que a alguno les debe interesar… Depende como tenga el dia en el trabajo, tal vez ingrese para ver que temas tratan, solo de curiosidad..

Saludos

Código del evento: 1032365988
Nombre del evento: Conferencia Online MSDN Introducción a ASP.NET
Fecha inicial: 29/01/2008
Hora inicial: 10:00 AM
Fecha final: 29/01/2008
Hora final: 10:45 AM

Horario local:
Argentina 10:00 a 10:45
Uruguay: 10:00 a 10:45
Bolivia: 08:00 a 08:45
Chile: 09:00 a 09:45
Paraguay: 09:00 a 09:45

Haga clic en el vínculo siguiente para obtener más información acerca de esta difusión por Web.
https://msevents.microsoft.com/cui/r.ASpx?t=4&c=es-ar&r=1294909090

« Older PostsNewer Posts »

Powered by WordPress