web-dev-qa-db-fra.com

Utilisation de la première approche Asp.Net Identity DataBase

J'ai besoin d'intégrer Asp.Net dernière version MVC avec une base de données existante qui a une colonne supplémentaire String Address à la table dbo.AspNetUsers

J'ai besoin de créer une instance ApplicationUser qui possède la propriété Address.

Une idée comment le faire?

55
GibboK

Une solution possible qui fonctionne pour moi, fondamentalement, je peux intégrer des profils d'utilisateurs Asp.Net Identity à une base de données existante.

Obtenir les tables Asp.Identity:

  • Créer un projet MVC avec un compte d'utilisateur individuel d'authentification
  • Ouvrez la base de données répertoriée sous DefaultConnection dans Web.config. Il sera appelé (aspnet- [timestamp] ou quelque chose comme ça.)
  • Scriptez les tables de base de données à l'aide de SQL Server Management Studio (attachez la base de données pour mdc).

Vous pouvez également utiliser quelque chose comme http://identity.codeplex.com/

Intégration avec votre base de données existante:

  • Insérez les tables de script dans la base de données existante dans SQL Server Management Studio.
  • Personnalisez et ajoutez des relations à ApplicationUser (si nécessaire).
  • Créer un nouveau projet Web> MVC> Premier projet de base de données> Importer une base de données avec EF ....
  • Dans IdentityModels.cs, changez ApplicationDbContext: base ("DefaltConnection") pour utiliser le DbContext de votre projet.

Vous avez maintenant les tables Asp.Identity dans votre modèle de base de données avec modèle ER dans votre application.

Profil Asp.Identity Ajout de nouvelles propriétés:

  • Activer les migrations de base de données Entity Framework Code First, juste dans VS allez sous Outils ‘Package Manager Console’,
  • Exécutez la commande “Enable-Migrations”; Une fois que nous avons activé les migrations de base de données, nous pouvons continuer et ajouter de nouvelles propriétés pour notre UserProfile.

  • Pour ajouter de nouvelles propriétés, modifiez le fichier IdentityModels.cs, par exemple:


public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string EmailID { get; set; }
}

Ajouter une nouvelle migration

  • Une fois les propriétés ajoutées, apportez la console du gestionnaire de packages et exécutez la commande suivante.

    Add-Migration “YouMigrationName”

Cette commande générera un fichier de script de base de données. Exécutez maintenant la commande suivante pour exécuter ce fichier de script sur la base de données.

Update-Database

Désormais, toutes les nouvelles propriétés deviendront des champs de table dans la même table de base de données.

J'espère que cela pourra aider les autres. Si vous avez une meilleure idée, merci de me le faire savoir.

56
GibboK

J'ai réussi à intégrer une base de données existante via Database First avec Identity Framework 2.0. J'ai écrit un article de blog dessus ici qui utilise ASP.NET MVC 5, Identity Framework 2.0 et le modèle SPA de Visual Studio 2013 Update 2 RTM. .

J'espère que cela aidera tout le monde dans son parcours, car il contient quelques points non répertoriés à un endroit que je devais trouver par moi-même.

22
Daniel Eagle

Jetez un coup d'œil à ces projets sur GitHub:

Qui comprend:

  • Modèle de projet de base de données SQL pour ASP.NET Identity 2.0
  • Base de données Entity Framework - Premier fournisseur (s)
  • Code source et échantillons

enter image description here

20
Konstantin Tarkus