Les services web d'authentification, de profils et de rôle ASP.NET
Introduction
On cherche dans cet article à exploiter les ressources de la plate forme .NET pour gérer les utilisateurs qui vont accéder à un site web ASP.NET. Afin de définir les utilisateurs, les rôles et les droits d’accès à notre site web.
Pré-requis
On suppose que nos lecteurs ont un minimum de connaissances avec la plateforme .NET et avec les pages ASP.NET. En outre, on note qu’on se base dans notre exemple sur le Framework.NET 3.5 avec l’IDE Microsoft Visual Studio 2008.
Création du projet et des éléments à exploiter
En ce qui suit nos choix lors de la création de notre projet web.
Création du projet
On commence par choisir un projet web de type « ASP.NET Web Application ». On note très bien aussi le choix du « .NET Framework 3.5 ».
Pour l’instant on garde les paramétrages par défaut de notre projet sachant que l’application tournera sous le serveur de développement ASP.NET et non sous IIS.
Ajoutez deux répertoires à votre application « News » et « Questions » et ajoutez une WebForm dans chaque répertoire.
Création de la base de données
Pour que les composants .net puissent gérer les utilisateurs, les rôles et les règles de gestions des droits d’accès à votre site web. Il faut leur créer une base de données où ils vont stocker tous vos paramètres de gestion des droits d’accès, plusieurs provider peuvent être utilisés : SqlProvider pour les bases de données SQL Server, OracleProvider pour les bases de données Oracle, MySqlProvider pour les bases de données MySql, FileProvider pour le stockage dans des fichiers (XML) et ADPProvider pour l’active directory. Dans note article nous allons utiliser une base de données SQL Server Express.
Allez dans le répertoire C:WindowsMicrosoft.NETFramework et faites une recherche pour trouver le fichier « aspnet_regsql.exe », exécutez le, et faites suivant jusqu’à l’étape de sélection du serveur, choisissez votre serveur, votre mode d’authentification et le nom de votre base de données que vous voulez créer, puis toujours suivant.
Paramétrage de la connexion
Dans votre site, ouvrez votre fichier « Web.Config » et remplacez le tag « ConnectionStrings » par ce qui suit, en définissant le nom de votre serveur, votre base de données et votre provider.
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="Data Source=MAC4SQLEXPRESS;Initial Catalog=Test;User Id=sa;Password=sa"
providerName="System.Data.SqlClient" />
</connectionStrings>
Et remplacez votre mode d’authentification à la valeur « Forms » pour pouvoir gérer vos utilisateurs, la valeur par défaut étant « windows ». Il existe d’autre forme d’authentification que nous pourrons détailler dans un autre article.
<system.web>
<authentication mode="Forms" />
</system.web>
Paramétrage des rôles et des droits d’accès
Allez dans le volet « Project » et « ASP.NET Configuration ».
Le système ouvrira l’interface de configuration dans votre navigateur web.
- Cliquez sur : configuration de fournisseur
- Cliquez sur : Sélectionner un fournisseur unique pour toutes les données de gestion de site
- Cliquez sur : sur le nom de votre application
Allez dans le volet Sécurité
- Cliquez sur : Activer les rôles
- Cliquez sur : Créer ou gérer des rôles
- Ajoutez deux rôles « RoleNews » et « RoleQuestions »
Allez dans le volet Sécurité
- Cliquez sur : Gérer les utilisateurs
- Ajoutez deux utilisateurs « UtilNews » et « UtilQuestions » et leur affecter les rôles correspondants
Allez dans le volet Sécurité et cliquez sur : Créer des règles d'accès. Le principe de gestion des droits d’accès est très simple :
Pour créer une règle d’accès il faut choisir un répertoire de votre application, puis un rôle ou un utilisateur ou tous les utilisateurs et spécifier si vous lui autorisez l’accès à ce répertoire ou non. Une fois toutes vos règles d’accès définies et pour assurer l’authentification des utilisateurs à votre site, il suffit d’ajouter un formulaire ou on récupère le nom utilisateur et le mot de passe et de le passer en paramètre à la méthode :
FormsAuthentication.Authenticate(Login1.UserName, Login1.Password)
Conclusion
Nous avons essayé de simplifier l’utilisation de l’ASP.Net et le Framework .NET (System.Web.Security) qui nous fournissent un ensemble d'outils destinés à gérer les droits d’accès à un site web. Pour pouvoir aller plus en détail il suffit que nous explicitons les « MembershipUser », « MembershipProvider », « Membership », « RoleProvider », « ProfileProvider » ; chacun pouvant faire l’objet d’un article à part. Vous pouvez même créer vos propre Provider en héritant de la classe abstraite « MembershipProvider ».
Publié par
n00r -
Dernière mise à jour le 9 décembre 2009 à 21:57 par Ced_King