Configuration de l'appartenance existante avec mvc4
J'ai déjà un SQL adhésion db que j'ai utilisé avec les formulaires web, je suis en train de le configurer pour fonctionner avec mvc4, mais avec pas de chance, quand j'essaie d'obtenir de l'utilisateur par id(je sais que cet utilisateur existe) je suis nulle exception.Et web j'ai open web app config je peux clairement voir qu'il n'a pas de membres ou de rôles, etc..
Voici une partie de la config de mon web froms application :
<configuration>
<connectionStrings>
<add name="ApplicationServices" connectionString="Data Source=myserver;Initial Catalog=mydb;User ID=myid;Password=mypwd" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<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>
<properties>
<add name="UrgentPoints" type="System.Int32" defaultValue="0" />
</properties>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
....
Et voici pour mvc:
<configuration>
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=myserver;Initial Catalog=mydb;User ID=myid;Password=mypwd" providerName="System.Data.SqlClient" />
</connectionStrings>
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="true" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
<profile defaultProvider="DefaultProfileProvider">
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</profile>
<membership>
<providers>
<add connectionStringName="DefaultConnection" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false"
requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
applicationName="/" name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</providers>
</membership>
<roleManager>
<providers>
<add connectionStringName="DefaultConnection" applicationName="/"
name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</providers>
</roleManager>
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
</providers>
</sessionState>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
source d'informationauteur formatc | 2012-03-26
Vous devez vous connecter pour publier un commentaire.
Abord, assurez-vous de passer à Asp.Net Universelle des Fournisseurs (package nuget) et assurez-vous de vous connecter à la même DB que l'ancienne application. Le schéma de la asp.net db n'a pas changé et devrait fonctionner correctement avec MVC 4.
Ici est ma façon à moi après 3 jours de recherche sur Google. À l'aide de MVC4 RC, .net Framework 4.5, SQL Server Express avec de nouveaux
SqlMemberDB
créé par .NET 4 cause vieille SqlMemberDB pas certains de la procédure stockée.ajouter un paramètre plus de
<AppSetting>
comme ci-dessous pour désactiver "simple membre":ajouter dans la connexion de base de données que nécessaire. Je suis à l'aide de SQL Server 2000, afin de désactiver l'utilisateur instance.
paramètre de copie de configuration de la machine.ini en vertu de la v4 .NET framework.
Changement de Login() à partir d'un Compte Contrôleur comme ci-dessous
Mise à jour de Fermeture de session module de AccountController comme ci-dessous
Merci,
J'ai eu le même problème pointant vers le MVC4 application à un "vieux" aspnet base de données. Les noms d'utilisateur/mots de passe ne peuvent pas être récupérées sous les paramètres "par défaut" (le Système.Web.Les prestataires.DefaultProfileProvider) -> note ces mots de passe sont cryptés et les paramètres appropriés sont présents dans le web local.config (sous système.web)
Si j'ajoute un nouvel utilisateur avec le "DefaultProfileProvider" que l'utilisateur peut être réconciliés et authentifié - il n'a tout simplement pas travailler avec les utilisateurs qui ont été ajoutés avec le "vieux" fournisseur il me semble.
Je n'ai pas eu la chance de "passer" à l'ancienne mais je soupçonne que cela fonctionne (grâce user1010609)
@Israël - C'est curieux, et il devrait fonctionner - mais il n'en est rien 😉
N'oubliez pas que vous devez inclure dans les références de votre projet de la bibliothèque:
System.Web.Providers.dll