Silverlight Navigation and Authentification Application

Sur le sujet de l'authentification dans une application web, j'avais déjà écris beaucoup de choses et notamment développé un projet du Codeplex : http://loginmodule.codeplex.com/

Je suis donc curieux de découvrir l'état de l'art dans les applications Silverlight ... et je suis donc en train de lire les pages suivantes :

http://msdn.microsoft.com/fr-fr/library/ee942451(v=vs.91).aspx
Procédure pas à pas : Utilisation du service d'authentification avec une application de navigation Silverlight

Et la page :

http://msdn.microsoft.com/fr-fr/library/ee942449(v=vs.91).aspx
Procédure pas à pas : Utilisation du service d'authentification avec une application métier Silverlight

Pour constater, avec joie, qu'il n'y a pas grand chose de nouveau sous le soleil.

La première page "Utilisation du service d'authentification avec une application de navigation Silverlight" nous amène progressivement à la création de formulaires utilisateurs susceptibles de réaliser l'enregistrement et l'authentification de cet utilisateur à travers les WCF Ria Services, ce qui est déjà réalisé dans la deuxième page.

J'ai donc crée une Business Silverlight Application donc la structure est la suivante :

Silverlight Business Application Structure
Cette application Silverlight est hostée par une application web ASP.NET :

ASP.NET Application qui hoste le MyBusinessApplication.xap
Au passage, on peut noter que tout est déjà fait au niveau des WCF Ria Services pour qu'un utilisateur puisse s'enregistrer et s'authentifier au sein de l'application.

Et après avoir utilisé le formulaire d'enregistrement pour un nouvel utilisateur :

Siverlight WCF Ria Services enregistrement d'un nouvel utilisateur 
La fameuse base de donnée SQL Server : ASPNETDB.MDF apparaît comme par enchantement dans le répertoire App_Data de mon application ASP.NET Web :
\\Silverlight\MyBusinessApplication\MyBusinessApplication.Web\App_Data

Et je suis authentifié au sein de mon application Silverlight hostée par l'ASP.NET Web application :

Manager utilisateur créé et authentifié
Cette application met en oeuvre l'utilisation de l'objet Membership du namespace System.Web.Security afin de créer un nouvel utilisateur authentifié :

Dans :
\\Silverlight\MyBusinessApplication\MyBusinessApplication.Web\Services\UserRegistrationService.cs

    [EnableClientAccess]
    public class UserRegistrationService : DomainService

On utilise :
Membership.CreateUser(user.UserName, password, user.Email, user.Question, user.Answer, true, null, out createStatus);

Pour créer un nouvel utilisateur dans un rôle par défaut :
Roles.AddUserToRole(user.UserName, UserRegistrationService.DefaultRole);

Conclusion

Ces mécanismes d'enregistrement et d'authentification des utilisateurs sont toujours les mêmes, ils sont parfaitement maîtrisés et utilisés pour la gestion des rôles et des utilisateurs dans une application web. C'est par eux qu'ils faut impérativement passer et sinon pourquoi réinventer une roue qui existe déjà. C'est le problème que nous avons lorsque nous utilisons un projet comme HappyNet qui ne fonctionne pas de la même façon et du coup ne fonctionne pas du tout.





Aucun commentaire:

Enregistrer un commentaire

Pour plus d'interactivité, n'hésitez pas à laisser votre commentaire.