Membership Provider


Dans ce tutoriel, nous allons voir comment utiliser une base de données SQL pour permettre à des visiteurs de s’authentifier sur notre site. Pour cela nous allons utiliser un Membership Provider.

Commençons par créer la base de données en utilisant aspnet_regsql.exe qui se trouve par défaut dans le dossier « C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 ». Au lancement, cet utilitaire ouvre une fenêtre de configuration.

Configurez-le pas à pas pour créer la base de données « aspnetdb ».


Une fois la base de données créée, vous la verrez dans SQL Server.

Nous allons créer un utilisateur qui sera maître de cette nouvelle base de données et qui servira de login à notre application.

Créons le user et donnons-lui la base de données « aspnetdb » par défaut.

Donnons-lui aussi le rôle de dbowner.

Une fois le compte admin de la base de données créé, nous allons ajouter des utilisateurs. Pour cela, nous allons créer une application web de gestion.

Une fois l’application créée, nous allons ajouter au web.config 3 éléments :

1) La connexion string :

 
<connectionStrings>     
<add name="TutoConnectionString" connectionString="Votre connectionstring" providerName="System.Data.SqlClient" />   
</connectionStrings> 

Pour info, Visual Studio contient un utilitaire qui peut construire notre string, dans l’onglet Tools, choisissons Connect to database.

Sélectionnons Microsoft SQL Server.

Dans la fenêtre Add connection, sélectionnons notre serveur, renseignons nos login et mot de passe et selectionnons la base de données aspnetdb.

Si nous voulons tester la connexion, un bouton « Test Connection » est prévu à cet effet.

Pour récupérer notre connexion, cliquons sur Advanced et récupérons la data source.

2) Le membership provider :

Dans la balise system.web, ajoutons les éléments suivants :

 
<membership defaultProvider="TutoMembershipProvider">      
 <providers>         
<add name="TutoMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
connectionStringName="TutoConnectionString" 
enablePasswordRetrieval="false" 
enablePasswordReset="true" 
requiresQuestionAndAnswer="false" 
applicationName="/" 
requiresUniqueEmail="false" 
passwordFormat="Hashed" 
maxInvalidPasswordAttempts="5" 
minRequiredPasswordLength="1" 
minRequiredNonalphanumericCharacters="0" 
passwordAttemptWindow="10" 
passwordStrengthRegularExpression="" />      
 </providers>     
</membership> 

Ces paramètres sont utilisés pour mettre en place un niveau de sécurité des mots de passe. Pour ce tuto nous ne mettrons que le strict minimum (longueur de 1, pas d’expression régulière ou de caractère non-alphanumérique).

 minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression="" 

3) Le role provider :

 
<roleManager enabled="true" defaultProvider="TutoRoleProvider">      
<providers>         
<add name="TutoRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="TutoConnectionString"
applicationName="/" />       
</providers>     
</roleManager>
 

Ces éléments ajoutés au web.config nous pouvons maintenant ajouter des utilisateurs à notre base de données. Pour cela nous allons passer par l’ASP .NET Configuration de Visual Studio qui se situe dans l’onglet Project.


La première opération que nous devons réaliser se passe dans l’onglet « Sécurité ».

Ici, nous allons changer le type d’authentification qui est basiquement en Windows pour le faire passer en form.

En choisissant l’option « A partir d’Internet » nous pourrons maintenant ajouter des utilisateurs dans la base de données. Après avoir cliqué sur « terminer » revenons dans l’onglet sécurité.

En cliquant sur « Créer un utilisateur », nous pourrons ajouter un utilisateur à notre base de données.

Une fois les données enregistrées, vérifions que la case « Utilisateur actif » est bien cochée et cliquons sur « Créer un utilisateur ».

Notre configuration au niveau de la base de données est finie. Maintenant, nous allons attaquer la partie SharePoint !

Pour ce tutoriel, nous allons être soigneux et partir de 0. Nous allons tout d’abord créer la web application qui servira de coté « extranet » et qui sera accessible via la windows authentication basique.


Laissez tous les paramétrages par défaut (comme vous le voyez j’ai juste spécifié le port à 2000 et le nom de la base de données à WSS_Content_2000).

Une fois l’application créée, créons une nouvelle collection de site sur base d’un modèle de publication.

Nous voici donc devant un site de publication tout ce qu’il y a de plus basique accessible via la windows authentication

Nous allons maintenant créer notre site internet qui sera accessible par des personnes externes. Commençons par étendre notre application web


Soyez sûr de sélectionner la web application que nous venons de créer et de définir la zone sur « Internet ». Quand toutes les infos sont renseignées, cliquez sur « OK ».

Maintenant que nos applications sont définies, nous devons encore modifier les web.config. Les modifications des web.config des 2 web applications sont identiques.

Faisons une recherche sur :

 </SharePoint> 

Nous tombons sur un bloc de code ressemblant à :

 
</SharePoint>   
<system.web>    
 <securityPolicy>      
 <trustLevel name="WSS_Medium" policyFile="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\config\wss_mediumtrust.config" />       
<trustLevel name="WSS_Minimal" policyFile="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\config\wss_minimaltrust.config" />     
</securityPolicy>     
<httpHandlers> 

Ajoutons les 3 éléments que nous avons déjà ajoutés à notre web application, à savoir la connection string, le membership et le role provider afin que notre code ressemble à ceci.

 
</SharePoint>   
<connectionStrings>     
<add name="TutoConnectionString"  connectionString="Votre connectionstring" providerName="System.Data.SqlClient" />   
</connectionStrings>  
<system.web>     
<membership defaultProvider="TutoMembershipProvider">       
<providers>         
<add name="TutoMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web,Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"              
connectionStringName="TutoConnectionString"              
enablePasswordRetrieval="false"              
enablePasswordReset="true"              
requiresQuestionAndAnswer="false"              
applicationName="/"              
requiresUniqueEmail="false"              
passwordFormat="Hashed"              
maxInvalidPasswordAttempts="5"              
minRequiredPasswordLength="1"              
minRequiredNonalphanumericCharacters="0"              
passwordAttemptWindow="10"              
passwordStrengthRegularExpression="" />       
</providers>     
</membership>     
<roleManager enabled="true" defaultProvider="TutoRoleProvider">       
<providers>         
<add connectionStringName="TutoConnectionString" applicationName="/" name="TutoRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />       
</providers>     
</roleManager>     
<securityPolicy>       
<trustLevel name="WSS_Medium" policyFile="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\config\wss_mediumtrust.config" />       
<trustLevel name="WSS_Minimal" policyFile="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\config\wss_minimaltrust.config" />     
</securityPolicy> 

Maintenant, nous devons modifier l’authentication provider dans la centrale d’administration.

Sélectionnons la zone « Internet ».

Sur cet écran, nous allons renseigner le type d’authentification sur « forms» ainsi que le nom de nos membership provider et role manager.

Une fois cela renseigné, il nous reste une chose à faire : donner à notre utilisateur le droit de se connecter sur notre site. Pour cela, passons par le coté extranet et ajoutons « josephine » à nos membres :

Entrons le nom « josephine » :

Après avoir cliqué sur le people picker, attendons quelques secondes pour que « josephine » soit soulignée !


Nous voyons bien que « josephine » fait partie de nos membres. Il est maintenant temps de tester le compte en allant sur le portail internet.

Nous pouvons remarquer que l’accès à notre site est restreint. Introduisons le login et le mot de passe de « josephine ».

Apres avoir cliqué sur Sign In nous nous retrouvons identifié en tant que « josephine » sur notre site.

Voilà, vous pouvez maintenant donner l’accès à des utilisateurs externe à votre site.

Christopher.

Article initialement posté le 05/05/2010 sur Areaprog

Cet article, publié dans SharePoint 2007, est tagué , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s