2010-09-28 6 views
2

J'ai essayé de configurer le fournisseur de rôle, en utilisant ce article.Fournisseurs de rôles ASP.NET MVC pour MySQL

Cela a fonctionné partiellement - le fournisseur a créé des tables dans MySQL, mais je ne peux pas y accéder à partir d'ASP.NET Configuration Tool. Je reçois erreur suivante, tout en essayant d'ajouter certains rôles (Rôles-> Créer ou gérer des rôles):

Une erreur liée au réseau ou spécifique à une instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (fournisseur: fournisseur de canaux nommés, erreur: 40 - Impossible d'ouvrir une connexion à SQL Server) à System.Web.Administration.WebAdminPage.CallWebAdminHelperMethod (Boolean isMembership, String nomMéthode, Object [] paramètres, Type [] paramTypes) à ASP. security_roles_manageallroles_aspx.BindGrid() à ASP.security_roles_manageallroles_aspx.Page_Load() à System.Web.Util.CalliHelper.ArglessFunctionCaller (IntPtr fp, Object o) à System.Web.Util.CalliEventHandlerDelegateProxy.Callback (Expéditeur d'objet, EventArgs e) sur System. Web.UI.Control.OnLoad (EventArgs e) à System.Web.UI.Control.LoadRecursive() à System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Ma chaîne de connexion (qui fonctionne pour accéder aux données avec LINQ to MySQL (avec dblinq)):

<connectionStrings> 
<add name="ZenToolDB" connectionString="Database=zentool;Data Source=localhost;User Id=root;Password=supersecretpassword" providerName="MySql.Data.MySqlClient" /> 
</connectionStrings> 

Une idée, comment le faire fonctionner? Merci!

EDIT: Ajout fragment web.config avec les fournisseurs:

<membership defaultProvider="MySqlMembershipProvider"> 
     <providers> 
     <clear/> 
     <add name="MySqlMembershipProvider" 
      type="MySql.Web.Security.MySQLMembershipProvider, 
      MySql.Web, Version=6.2.2.0, Culture=neutral, 
      PublicKeyToken=c5687fc88969c44d" 
      autogenerateschema="true" 
      connectionStringName="ZenToolDB" 
      enablePasswordRetrieval="false" 
      enablePasswordReset="true" 
      requiresQuestionAndAnswer="false" 
      requiresUniqueEmail="false" 
      passwordFormat="Hashed" 
      maxInvalidPasswordAttempts="5" 
      minRequiredPasswordLength="6" 
      minRequiredNonalphanumericCharacters="0" 
      passwordAttemptWindow="10" 
      passwordStrengthRegularExpression="" 
      applicationName="/"/> 
     </providers> 
    </membership> 
     <profile> 
      <providers> 
       <clear /> 
       <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ZenToolDB" applicationName="/" /> 
      </providers> 
     </profile> 
     <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider"> 
     <providers> 
     <clear /> 
     <add connectionStringName="ZenToolDB" applicationName="/" name="AspNetSqlRoleProvider" 
      type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <!-- 
     <add applicationName="/" name="AspNetWindowsTokenRoleProvider" 
      type="System.Web.Security.WindowsTokenRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     --> 
     </providers> 
    </roleManager> 

Répondre

1

Il y a des fournisseurs de rôle section dans votre web.config, avez-vous assurez-vous que les points au nouveau fournisseur de rôle? Sinon, il essaie probablement d'utiliser le fournisseur de rôles SQL par défaut.

La valeur par défaut ressemble à ceci, et utilise le System.Web.Security.SqlRoleProvider qui semble être des références dans votre trace de pile.

<membership> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" 
     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" 
     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     applicationName="/" /> 
    </providers> 
</membership> 

<profile> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
    </providers> 
</profile> 

<roleManager enabled="false"> 
    <providers> 
    <clear/> 
    <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
    <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
    </providers> 
</roleManager> 
+0

Oui, il pointe vers un nouveau fournisseur de rôle. Merci pour votre réponse. – mlusiak

+0

Pouvez-vous publier l'intégralité de web.config, y compris le gestionnaire de rôles, l'appartenance et les sections de profil, car la trace de la pile semble utiliser le gestionnaire de rôles par défaut. L'article que vous avez lié ne modifie que la section Membership, pas la section de gestion des rôles. –

+0

J'ai ajouté un fragment de web.config avec des sections, vous avez demandé. – mlusiak

Questions connexes