ASP.NET MVC 5: Mendapatkan semula ApplicationUser Semasa
Mengakses ApplicationUser yang sedang dilog masuk dalam rangka kerja Identiti ASP.NET MVC 5 memerlukan pendekatan tertentu. Tidak seperti mekanisme Keahlian lama, Identity menyediakan antara muka yang konsisten untuk berinteraksi dengan data pengguna.
Mendapatkan semula Objek ApplicationUser
Untuk mendapatkan objek penuh ApplicationUser semasa, jangan tanya pangkalan data secara langsung. Sebaliknya, gunakan API yang disediakan:
var user = UserManager.FindById(User.Identity.GetUserId());
Untuk tindakan async, gunakan:
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
Pastikan anda memasukkan pernyataan menggunakan berikut:
using Microsoft.AspNet.Identity;
Mengakses ID Pengguna
Di luar pengawal, ID pengguna boleh diambil daripada:
System.Web.HttpContext.Current.User.Identity.GetUserId();
Senario: Mengakses ApplicationDbContext dan UserManager
Jika anda tiada dalam pengawal Akaun, tambah sifat ini dan kod pembina pada pengawal anda:
protected ApplicationDbContext ApplicationDbContext { get; set; } protected UserManager<ApplicationUser> UserManager { get; set; } public YourController() { this.ApplicationDbContext = new ApplicationDbContext(); this.UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(this.ApplicationDbContext)); }
Pangkalan Data Azure Pertimbangan
Apabila menggunakan Rangka Kerja Identiti dengan sambungan pangkalan data Azure jauh, anda mungkin menghadapi mesej "ralat: 19 - Sambungan fizikal tidak boleh digunakan". Untuk menyelesaikan masalah ini, laksanakan SqlAzureExecutionStrategy tersuai dalam projek anda.
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan semula ApplicationUser yang sedang dilog masuk dalam ASP.NET MVC 5?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!