web-dev-qa-db-fra.com

Comment utiliser le noyau AspNet.Identity dans la base de données My Sql

Je développe une application en utilisant asp dot net 2 en utilisant base de données MySql . Aidez-moi. Comment utiliser Asp Net Identity in MySqlDatabase .

5
Rony Patel

Je devais le faire pour un client. Et je l'ai fait dans une application avec ASP.NET Core 1.0, mais par curiosité, j'ai aussi essayé une application dans .NET Core 2.0. 

Ce que j'ai fait, c'est d'abord installer le package MySQL Entity Framework à partir de https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql/ en utilisant la console du gestionnaire de packages.

Après cela, j’ai changé dans startup.cs, dans la méthode ConfigureServices, l’option UseSqlServer à UseMySql, comme dans l’image ci-dessous.

 enter image description here

Dans mon appsettings.json j'ai la connexion MySQL nommée IdentityConnection comme ceci:

{
    "ConnectionStrings": {
        "IdentityConnection": "Server=127.0.0.1;Database=identitycoredb;Uid=root;Pwd=1234;"
    },

Pour créer les tables d'identité, j'ai exécuté la commande de migration dans la console du gestionnaire de packages:

EntityFrameworkCore\Update-Database -Verbose

 enter image description here

14
Tiago Ávila

EDIT: À ce stade, .Net Core 2.0 ne prend pas en charge Identity with MySql, mais pourrait l’être dans un proche avenir.

__

Vous devez connecter Entity Framework à MySQL avec la connexion de Pomelo et Identity devrait fonctionner. Vérifiez ceci -> https://damienbod.com/2016/08/26/asp-net-core-1-0-with-mysql-and-entity-framework-core/

3
Claudio

Vous pouvez créer une base de données d'identité avec votre base de données MySQL Et utiliser la base de données d'identité pour votre autorisation. 

C'est comme ça que je le fais.

   //MySQL Database 
     services.AddDbContext<EFDbContext>(options =>
                options.UseSqlServer("Server = ; Database =MySQL  ; Trusted_Connection = True; MultipleActiveResultSets = true"));
//Identity Database               
     services.AddDbContext<EFIdentityDbContext>(options =>
                    options.UseSqlServer("Server = ; Database = Identity; Trusted_Connection = True; MultipleActiveResultSets = true"));

Cela devrait fonctionner correctement avec votre base de données MySQL.

public class EFIdentityDbContext : IdentityDbContext
{
    public EFIdentityDbContext(DbContextOptions<EFIdentityDbContext> options )
        :base (options)
    {

    }


}
0
ma1169