Dalam aplikasi web ASP.NET Core saya, saya menambahkan bidang khusus di Identitas saya seperti CompanyCode menggunakan model ApplicationUser. Saya sekarang mencoba mengambil CompanyCode dari pengguna yang masuk saat ini di aplikasi web, tetapi saya tidak tahu cara mengakses bidang ini. Bagaimana ini bisa dilakukan?

0
doodsy 7 Juli 2020, 18:25

1 menjawab

Jawaban Terbaik

Dari uraian Anda, saya kira Anda telah menambahkan CompanyCode ke model ApplicationUser, dan mengonfigurasi layanan dan UserManager untuk menggunakan model ApplicationUser. Seperti ini:

Manajer Pengguna:

    private readonly UserManager<ApplicationUser> _userManager;
    private readonly SignInManager<ApplicationUser> _signInManager;

Setup.cs KonfigurasiLayanan:

        services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
            .AddEntityFrameworkStores<ApplicationDbContext>();

Kemudian, Anda dapat mencoba mengakses bidang CompanyCode dengan menggunakan kode berikut:

@UserManager.GetUserAsync(User).Result.CompanyCode

Sebagai contoh:

Di halaman _LoginPartial.cshtml:

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="Identity" asp-page="/Account/Manage/Index" title="Manage">Hello @User.Identity.Name! @UserManager.GetUserAsync(User).Result.CompanyCode</a>
</li>

Setelah login, hasilnya seperti di bawah ini:

enter image description here

Atau, dalam metode aksi pengontrol:

    private readonly ILogger<HomeController> _logger; 
    private readonly UserManager<ApplicationUser> _userManager;
    public HomeController(ILogger<HomeController> logger,  UserManager<ApplicationUser> usermanager)
    {
        _logger = logger; 
        _userManager = usermanager;
    }

    public IActionResult Index()
    { 
        if (this.User.Identity.IsAuthenticated)
        { 
            //login success
            var item = _userManager.GetUserAsync(this.User).Result.CompanyCode;
        }
        return View();
    }

Hasilnya seperti ini:

enter image description here

1
Zhi Lv 8 Juli 2020, 06:26