2012-02-17 3 views
1

Dans le passé, nous utilisions la configuration par défaut d'asp.net pour ajouter automatiquement des tables et des codes associés. Ensuite, mettez-le à jour un peu pour répondre à nos besoins, par exemple un fournisseur de profil personnalisé. Nous utilisons maintenant MVC3 et Entity Framework 4. De plus, nous utilisons MySQL comme base de données cette fois car EF4 communique bien avec tous les types de bases de données. Ensuite, nous avons quelques problèmes.Entity Framework pour l'authentification/l'autorisation

  1. La configuration asp.net créera une entrée de chaîne de connexion distincte dans web.config et utilisera celle-ci. Est-il possible que nous puissions utiliser notre modèle EDMX existant? Puisqu'il nous est impossible d'écrire une procédure stockée dans la base de données MySQL, y a-t-il un exemple de code qui a conçu ces fournisseurs d'appartenance/de profil sans utiliser de procédures stockées?

Merci.


[Mise à jour - en réponse à Mathieu Leblanc]

Mon projet actuel est d'utiliser une base de données MySQL existante, qui contient déjà les membres, les rôles et les profils d'information. Par conséquent, nous ne devons pas utiliser Aspnet_regsql.exe pour créer de nouvelles tables dans la base de données. Comment pouvons-nous utiliser la structure de base de données existante pour concevoir ces fournisseurs?

Je n'ai pas encore pensé à une bonne solution jusqu'à présent. Toute suggestion sera grandement appréciée.

Répondre

0

Vous pouvez en effet utiliser une base de données unique pour stocker les tables d'authentification et votre base de données EF4 régulière.

Vous pouvez générer le script qui crée toutes les tables d'authentification ASP.Net avec l'outil de ligne de commande Aspnet_regsql.exe (détails ici: http://msdn.microsoft.com/en-us/library/ms229862.aspx)

Vous pouvez également modifier votre web.config d'avoir une seule connexion Chaîne pour pointer vers votre base de données unique, mais je vous suggère de garder deux lignes, chacune ayant son nom (et son but), et simplement les pointer vers la même base de données.

Il est l'air va comme

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS2008;Integrated Security=SSPI;initial catalog=MyDatabase" providerName="System.Data.SqlClient" /> 
    <add name="MyEntities" connectionString="data source=.\SQLEXPRESS2008;Integrated Security=SSPI;initial catalog=MyDatabase" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
... 

Pour votre question sur la façon de traiter avec MySQL avec base de données d'authentification ASP.Net, en ce qui concerne Proc stocké, je ne sais pas comment (et si) cela fonctionne.

+0

Merci pour la réponse. Mais il y a certaines limites à votre solution proposée. Il y a déjà des utilisateurs et des informations sur les rôles et les profils dans les tables de la base de données MySQL. Comment pouvons-nous créer un fournisseur qui utilise ces tables existantes au lieu d'en créer de nouvelles? J'ai mis à jour la question. – Blaise

+0

Peut-être que j'ai compris votre question à l'envers? Vous avez déjà la base de données des membres. Est-ce que ça marche? –

+0

La base de données d'adhésion est un MySQL. J'essaye d'utiliser ces données d'utilisateur stockées dans ses tables. – Blaise