Antoine Griffard
LINQRoleProvider
L'objectif de cet article est d'implémenter un fournisseur de rôles ASP.NET personnalisé à l'aide de LINQ To Sql tout en faisant un tour d'horizons de la syntaxe des requêtes LINQ.
Par Antoine Griffard publié le 13/04/2008 à 22:18, lu 4379 fois, 8 pages
 4 | Initialisation du RoleProvider
Nous pouvons maintenant commencer à implémenter notre fournisseur.

La première étape est de créer une classe LinqRoleProvider qui hérite de la classe abstraite System.Web.Security.RoleProvider. Nous devrons donc substituer plusieurs méthodes et propriétés. La première méthode à implémenter est la procédure Initialize. Elle permet de spécifier la façon dont le fournisseur va s'initialiser et quels attributs vous allez récupérer à partir de la section de configuration du fichier web.config afin de paramétrer les variables qui vont être utilisées dans nos méthodes comme par exemple la chaîne de connexion à la base de données.

Une variable dc de type ProvidersDataContext va par exemple être instanciée avec le constructeur prenant en paramètre une chaîne de connexion. Nous l'utiliserons pour exécuter nos requêtes LINQ.

Public Overrides Sub Initialize(ByVal name As String, ByVal config As NameValueCollection)

        If config Is Nothing Then

            Throw New ArgumentNullException("config")

        End If

        If String.IsNullOrEmpty(name) Then

            name = "LinqRoleProvider"

        End If

        If String.IsNullOrEmpty(config("description")) Then

            config.Remove("description")

            config.Add("description", "LINQ Role provider")

        End If

 

        MyBase.Initialize(name, config)

 

        ProviderUtil.GetAndRemoveConnectionStringNameAttribute(config, "connectionStringName", name, connectionString)

        dc = New ProvidersDataContext(connectionString)

 

        Me._applicationName = config("applicationName")

    End Sub

La propriété ApplicationName sera notamment récupérée dans cette phase d'initialisation. Il s'agit d'un paramètre important et il est indispensable de le spécifier dans la section de configuration car les tables comme celles des rôles contiennent un champ ApplicationId qui permet à ces tables d'être utilisées par plusieurs applications. C'est pourquoi on se fixe souvent comment règle de nommer l'applicationName du nom du répertoire virtuel utilisé par l'application. Ex : /Demo.
 
» Démarrer une discussion
 
Discussion démarée par malbaladejo le 16/05/2008 à 10:33, 4 commentaire(s).