Est-il possible d'utiliser un nom de base de données différent avec SqlMembershipProvider
-
07-07-2019 - |
Question
Puis-je spécifier une base de données différente de ASPNETDB
en utilisant SqlMembershipProvider
? Je développe un site sur un hôte partagé et je dois limiter mon schéma de données à une seule base de données fournie.
La dernière fois que j'ai suggéré de faire rouler mon propre code d'authentification, j'ai été vivement réprimandé.
Sinon, y a-t-il un autre système d'authentification empaqueté que je pourrais utiliser pour configurer une base de données arbitraire et des tables provenant d'asp.net?
La solution
Vous pouvez installer le schéma d’appartenance ASP.Net dans n’importe quelle base de données SQL à l’aide de Outil de ligne de commande aspnet_regsql.
Vous pouvez également spécifier la chaîne de connexion souhaitée pour votre fournisseur d'adhésion. Ajoutez simplement quelque chose comme ceci à votre déclaration d’adhésion dans votre fichier web.config:
<connectionStrings>
<add name="MyConnectionString" connectionString="Database=MyDatabase;Server=xxx;User=xxx;Pwd=xxx;" providerName="System.Data.SqlClient"/>
</connectionStrings>
<membership defaultProvider="MyProvider">
<providers>
<add connectionStringName="MyConnectionString" applicationName="/Test"
description="MyProvider" name="MyProvider" type="SqlMembershipProvider" />
</providers>
</membership>
Autres conseils
La réponse précédente est en grande partie correcte, mais j’ai eu un problème jusqu’à ce que je qualifie pleinement le "Type". La valeur doit être "System.Web.Security.SqlMembershipProvider".
<membership defaultProvider="MyProvider">
<providers>
<add connectionStringName="MyProvider"
applicationName="/Test"
description="MyProvider"
name="MyProvider"
type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>