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 5299 fois, 8 pages
 6 | Implémentation des méthodes du RoleProvider
Pour implémenter une classe qui hérite de RoleProvider, vous devez substituer les méthodes suivantes :

Public MustInherit Class RoleProvider

        Inherits ProviderBase

 

        Public MustOverride Property ApplicationName() As String

 

        Public MustOverride Sub AddUsersToRoles(ByVal usernames As String(), _

                                                ByVal roleNames As String())

 

        Public MustOverride Sub CreateRole(ByVal roleName As String)

 

        Public MustOverride Function DeleteRole(ByVal roleName As String, _

                                                ByVal throwOnPopulatedRole As Boolean) As Boolean

 

        Public MustOverride Function FindUsersInRole(ByVal roleName As String, _

                                                    ByVal usernameToMatch As String) As String()

 

        Public MustOverride Function GetAllRoles() As String()

 

        Public MustOverride Function GetRolesForUser(ByVal username As String) As String()

 

        Public MustOverride Function GetUsersInRole(ByVal roleName As String) As String()

 

        Public MustOverride Function IsUserInRole(ByVal username As String, _

                                                  ByVal roleName As String) As Boolean

 

        Public MustOverride Sub RemoveUsersFromRoles(ByVal usernames As String(), _

                                                    ByVal roleNames As String())

 

        Public MustOverride Function RoleExists(ByVal roleName As String) As Boolean

 

    End Class

Grâce aux méthodes que nous avons maintenant à disposition, il va être simple de compléter les fonctions de notre fournisseur.
La méthode de création d'un rôle pourra donc ressembler à celle-ci (on remarquera l'appel à la méthode GetApplicationId qui récupérera la valeur du champ ApplicationId à insérer) :

Public Overrides Sub CreateRole(ByVal rolename As String)

    Dim r As New Role

    r.RoleName = rolename

    r.LoweredRoleName = r.RoleName.ToLower

    r.ApplicationId = Queries.GetApplicationId(dc, ApplicationName)

 

    dc.Roles.InsertOnSubmit(r)

    dc.SubmitChanges()

End Sub

La fonction qui renverra tous les rôles s'écrira en une seule ligne de code :

Public Overrides Function GetAllRoles() As String()

    Return Queries.GetRoles(dc, ApplicationName).ToArray()

End Function

 
» Démarrer une discussion
 
Discussion démarée par malbaladejo le 16/05/2008 à 10:33, 4 commentaire(s).