2010-07-06 8 views
0

je la configuration suivante pour les rôles en utilisant SqlRoleProvider standard, mais je reçois une erreur quand je tente d'ouvrir la page de sécurité dans le site WWEB outil Admin:SqlRoleProvider ne parvient pas à se connecter à DB

<roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> 
    <providers> 
     <remove name="AspNetSqlRoleProvider"/> 
     <add name="AspNetSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider" 
      connectionStringName="PoyntingInstallationConnectionString" 
      applicationName="/" /> 
    </providers> 
    </roleManager> 

La DB a toutes les tables de rôles, etc.

+1

Quelle est l'erreur? – Jeroen

+0

@Jeroen, le message d'erreur n'est pas très utile: "Impossible de se connecter à la base de données SQL Server." – ProfK

+0

Etes-vous sûr de bien regarder la bonne connexion? La première chaîne de connexion est LocalSqlServer, qui n'apparaît pas dans votre fichier web.config mais il est présent. Alors pouvez-vous me dire comment vous arrivez à votre connexion à partir de votre accès aux données d'entreprise? – Jeroen

Répondre

1

Assurez-vous que PoyntingInstallationConnectionString se trouve dans votre fichier web.config, qu'il est configuré correctement et pointe vers la base de données contenant vos tables.

Les rôles sont des entrées dans la table aspnet_Roles et non des rôles de base de données. Et il n'y a pas de rôles par défaut, donc la table doit être vide lors de la première exécution du script.

Modifier: Pouvez-vous fournir plus de détails sur la façon dont vous avez créé la base de données auth? C'est à dire. avez-vous exécuté l'outil aspnet_regsql directement, ou avez-vous généré et exécuté les scripts séparément?

Édition 2: L'outil aspnet_regsql est assez facile à exécuter - il se trouve dans le dossier .NET Framework v2.0. (Emplacement par défaut C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727)

Il y a beaucoup de paramètres qui peuvent être utilisés à partir de la ligne de commande, ou si vous le lancez sans paramètres, il s'ouvrira un assistant qui vous guide à travers. Notez que, grâce à l'assistant, vous bénéficiez de la prise en charge de toutes les fonctionnalités du fournisseur d'appartenances (profils, personnalisation, événements Web ...) même si vous n'avez pas l'intention de les utiliser.

Je vous suggère de l'exécuter puis de comparer les résultats avec votre base de données existante. Quelqu'un a-t-il exécuté l'outil et ensuite copié les tableaux dans une autre base de données sans se rendre compte qu'il y avait un tas d'autres choses nécessaires? J'ai juste essayé d'exécuter l'outil à la fois depuis la ligne de commande et l'assistant, et il a généré tous les rôles, procs, etc.

Lorsque vous exécutez correctement, vous devez avoir un tas de tables (au moins 6), des procédures stockées (quelques douzaines ou plus - le mien a 35) et les rôles de DB (au moins 6) avec des noms commençant par aspnet_, et un tas de vues (au moins 5) avec des noms commençant par vw_aspnet_. Si vous manquez une partie de ceux-ci, le fournisseur ne fonctionnera pas. En général, je l'exécute à partir de la ligne de commande, de sorte que je ne reçois que l'appartenance et le rôle. Cela réduira un peu le bruit, mais c'est aussi pourquoi mes chiffres ci-dessus sont un peu flous. :)

+0

La connexion fonctionne correctement pour l'accès aux données d'entreprise standard. Plusieurs sources que j'ai lues aujourd'hui parlent aussi des rôles DB. Pas pour l'autorisation Web, mais pour le fournisseur lui-même. – ProfK

+1

@ProfK - Ok, je vois ce que vous dites. Oui, certains rôles de base de données, etc., sont requis pour le fournisseur. Voir ma modification. – GalacticCowboy

+0

Mon collègue vient d'utiliser l'outil sans générer de scripts. – ProfK

Questions connexes