2010-07-26 28 views
0

Je travaille sur une application web et je ne veux pas stocker les chaînes de connexion dans le web ou la configuration de l'application en raison des exigences. Jusqu'à présent, j'ai trouvé le seul moyen d'y parvenir: remplacer l'appartenance et les fournisseurs de rôles.Est-il nécessaire de remplacer l'appartenance et les fournisseurs de rôles?

Je ne comprends pas non plus pourquoi je dois aussi remplacer un fournisseur de rôle lorsque toute l'authentification est apparemment gérée par le fournisseur d'appartenances.

Merci

Répondre

0

J'ai trouvé une solution en ligne, ce qui est un peu un hack, mais cela m'évite de surcharger les membres et les fournisseurs de rôles.

La solution est de définir une chaîne de connexion dans global.asax par la réflexion:

protected void Application_PreRequestHandlerExecute() 
{ 
    try 
    { 
     SetProviderConnectionString(DllForConnectionStringManagement.GetConnectionString()); 
    } 
    catch (Exception e) 
    { 
    // Log and throw 
    } 
} 

SetProviderCOnnectionString est une méthode privée qui fixe les connexions de l'adhésion et le fournisseur de rôle par la réflexion.

1

Alors que le SqlRoleProvider et SqlMembershipProvider sont des préoccupations distinctes, ils parlent tous deux à la même base de données (généralement).

Ils ont chacun une section de configuration distincte et nécessitent une instance d'une chaîne de connexions. J'approuve la stratégie que vous avez découverte sur l'autre question et si vous souhaitez utiliser des rôles, vous devrez faire la même chose, la configuration dans le code, comme vous le faites pour l'adhésion.

Vous devez vous lier à l'autre question pour donner un contexte et éviter d'être marqué comme doublon.