Ensemble ASP.NET l'Identité propriété ConnectionString .NET 4.5.1
Donc, fondamentalement, enfin, après l'apprentissage comment changer OpenAuth de ne pas utiliser DefaultConnection .NET 4.5, j'ai déménagé sur 4.5.1, le rendu de ces apprentissages discutable. Les fonctions de AuthConfig.cs habitent maintenant dans la phase de Démarrage.Auth.cs, les méthodes statiques de La OpenAuth ont été captées à l'écart et, par conséquent, je ne peux plus modifier la valeur par défaut de OpenAuth.ConnectionString directement.
Quelle est la meilleure pratique pour l'évolution de la composition de la chaîne de connexion/base de données .NET 4.5.1?
OriginalL'auteur joelmdev | 2013-10-11
Vous devez vous connecter pour publier un commentaire.
J'ai suivi la démarche que vous avez suggéré et il a travaillé pour moi. Cependant, il y avait peu de choses surtout syntaxiques et nommer des problèmes qui est arrivé à être différent. Je pense que ces différences sont dues à probablement les différentes versions de Visual studio, nous avons utilisé (plutôt que .NET - ma version est la version un avec .NET 4.5.1). Je continue avec une description de ma solution spécifique.
Mon objectif était d'avoir un seul DB contexte avec lequel je peux accéder à la fois à l'Utilisateur d'Identité ou de données associées, et aussi mon application personnalisée des données. Pour réaliser cela, j'ai complètement supprimé de classe
ApplicationDbContext
qui est créé automatiquement pour vous lorsque vous créez un nouveau projet.Ensuite, j'ai créé une nouvelle classe
MyDbContext
.Les champs
Roles
,Users
,UserClaims
,UserLogins
,UserRoles
sont, comme l'a suggéré nécessaires pour la gestion de l'adhésion. Cependant, dans mon cas, leurs types ont des noms différents (ApplicationUser
au lieu deUser
,IdentityUserClaim
au lieu deUserClaim
et etc.). Je suppose que c'est la raison pour laquelle Antevirus avait "l'Utilisateur n'a pas pu être trouvé" problème.Aussi, comme nous le voyons dans mon cas, il y a 5 de ces champs au lieu de 8. Probablement, cela est dû aux différentes versions de Visual Studio.
La dernière modification que j'ai faite était dans la classe
AccountController
et il reflète l'utilisation du nouveau contexteMyDbContext
. Ici j'ai passé une instance deMyDbContext
au lieu deApplicationDbContext
Avant
Après
Maintenant résolu. Après l'extrait de code doit utiliser
MyDbContext
.Jetez un oeil à mon édité réponse. Je crois qu'il est beaucoup plus facile à utiliser, et beaucoup plus sûr. Ma réponse précédente n'a combiner les deux DbContexts en un seul, mais il n'code de la IdentityDbContext qui ne devrait probablement pas avoir été supprimé.
OriginalL'auteur feradz
Release Candidate
Fonctionne avec Microsoft.AspNet.L'identité.EntityFramework 1.0.0-rc1
Dans le constructeur sans paramètre pour AccountController, modifiez la ligne
à
et vous êtes bon pour aller.
Libération
Fonctionne avec Microsoft.AspNet.L'identité.EntityFramework 1.0.0
Similaire à ce que nous avons fait pour la version release candidate de, mais nous le faisons dans un endroit différent. Ouvrir
IdentityModels.cs
qui a été créé dans le cadre de la VS modèle et ajouter le constructeur suivant à laApplicationDbContext
classe:et vous pouvez maintenant modifier le constructeur sans paramètre dans
AccountController
deà
et votre fait.
regardez le nouveau code que j'ai fourni. Vous utilisez la version de Microsoft.AspNet.L'identité.EntityFramework, qui est pourquoi vous obtenez l'erreur; l'Utilisateur a été renommé IdentityUser dans la version de la bibliothèque. Il y avait des changements importants à la AccountController et les classes dont il dépend de la version 1.0.0-rc1 à la version 1.0.0. Le nouveau code que j'ai fourni, vous laisse avec distinct dbcontexts pour vous compte des modèles et des modèles de domaine (et il est difficile de les empêcher de se chevauchant parfois) mais c'est beaucoup plus simple et plus sûr.
OriginalL'auteur joelmdev