MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menerapkan Identitas ASP.NET Core 3.1 dengan MongoDB?

Gunakan paket Mongo Identity NuGet yang tersedia untuk umum sebagai pengganti Identitas Inti ASP.NET default. Beberapa paket yang masih dalam pemeliharaan adalah AspNetCore.Identity.Mongo dan AspNetCore.Identity.MongoDbCore .

  1. Instal paket terbaru di NuGet (lihat di atas).

  2. Klik kanan pada proyek Anda di panel "Solution Explorer"> Tambah> Item Scaffolded Baru...

    Pilih "Identity" di panel kiri, dan klik dua kali pada Identity di panel pilihan utama

  3. Di jendela "Tambah Identitas", pilih semua atau halaman yang ingin Anda gunakan.

    Klik tombol "+" di samping Input kelas konteks data, tambahkan yang baru (nama tidak masalah karena Anda dapat menghapusnya setelah itu), dan lakukan hal yang sama untuk kelas Pengguna (beri nama dengan baik, seperti ApplicationUser, ini akan menjadi yang akan Anda gunakan dalam pengembangan selanjutnya, mengubahnya akan memakan waktu dan banyak kerumitan)

    untuk kelas Pengguna, Anda dapat mengganti namanya menjadi Namespace, seperti "[Proyek Anda].Areas.Identity.Datas.ApplicationUser", ini akan tercermin pada kode scaffold.

3.1. Jika diperlukan, Anda dapat menambahkan kelas Peran, akan lebih baik jika dibuat di ruang nama yang sama dengan kelas Pengguna untuk mengkategorikan kode Anda.

  1. Buka file "IdentityHostingStartup.cs" di [Proyek Anda]/Areas/Identity, ganti kode dengan panduan dari GitHub, informasi pengaturan tambahan dapat ditemukan di sini
// Add Identity for AspNetCore.Identity.Mongo, ApplicationRole is optional
services.AddIdentityMongoDbProvider<ApplicationUser, ApplicationRole>(identityOptions =>
{
    // Password settings.
    identityOptions.Password.RequiredLength = 6;
    identityOptions.Password.RequireLowercase = true;
    identityOptions.Password.RequireUppercase = true;
    identityOptions.Password.RequireNonAlphanumeric = false;
    identityOptions.Password.RequireDigit = true;

    // Lockout settings.
    identityOptions.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(5);
    identityOptions.Lockout.MaxFailedAccessAttempts = 5;
    identityOptions.Lockout.AllowedForNewUsers = true;

    // User settings.
    identityOptions.User.AllowedUserNameCharacters =
      "ab[email protected]+";
    identityOptions.User.RequireUniqueEmail = true;
}, mongoIdentityOptions => {
    mongoIdentityOptions.ConnectionString = "mongodb://localhost:27017/MyDB";
    // mongoIdentityOptions.UsersCollection = "Custom User Collection Name, Default User";
    // mongoIdentityOptions.RolesCollection = "Custom Role Collection Name, Default Role";
}).AddDefaultUI(); //.AddDefaultUI() to temporary remove error when no EmailSender provided, see https://stackoverflow.com/questions/52089864/

// This is required to ensure server can identify user after login
services.ConfigureApplicationCookie(options =>
{
    // Cookie settings
    options.Cookie.HttpOnly = true;
    options.ExpireTimeSpan = TimeSpan.FromMinutes(5);

    options.LoginPath = "/Identity/Account/Login";
    options.AccessDeniedPath = "/Identity/Account/AccessDenied";
    options.SlidingExpiration = true;
});
  1. Daftar layanan Otentikasi di Configure() metode di Startup.cs map
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // code here...
    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    // add app.UseAuthentication(); to register authentication service, without it, user could technically login but has no logged in session created.
    app.UseAuthentication();
    app.UseAuthorization();
    // more code
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose Menyimpan _id sebagai string, bukan ObjectId

  2. Buat &Temukan GeoLocation di luwak

  3. Instalasi MongoDB

  4. Apa perbedaan yang tepat antara mongod dan mongos?

  5. tidak dapat mengambil data dari sudut http