دسته بندی ها
00:37 1399/05/23

گرفتن Id کاربر لاگین شده در View در Asp.net Core

مشخصات سوال کننده :
کاربر : hamdola     امتیاز کاربر : 121     رتبه کاربر : 12
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3530
پاسخ دهنده : saedbfd 02:09 1399/05/23

برای گرفتن Id کاربر لاگین شده در View در Asp.net Core چند تا راه وجود داره. اول اینکه میتونید Id کاربر لاگین شده رو در کنترلر به دست بیارید و توسط ViewBag اون رو به سمت ویو ارسال کنید.

 

دریافت Id کاربر لاگین شده در Asp.Net Core در کنترلر :

 public class HomeController : Controller
{
    private readonly UserManager<ApplicationUsers> _userManager;
    
    public HomeController(UserManager<ApplicationUsers> userManager)
    {
       _userManager = userManager;
    }


    public IActionResult Index()
    {
        ViewBag.UserId = _userManager.GetUserId(HttpContext.User);
        return View();
    }
}

 

خب همونطوری که می بینید با استفاده از کلاس UserManager که یکی از کلاسهای Identity هست میتونید به راحتی Id کاربر لاگین شده رو بدست بیارید و استفاده کنید. اما گاهی اوقات نیاز هست که این عملیات در View انجام بشه و امکان اینکه توسط ViewBag دریافت بشه نیست.

در این موارد میتونید با استفاده از تزریق Interface ها در View این کار رو انجام بدید.

 

دریافت Id کاربر لاگین شده در Asp.Net Core در view:

 

@using  Microsoft.AspNetCore.Identity
@inject Microsoft.AspNetCore.Http.IHttpContextAccessor _httpContext
@inject UserManager<ApplicationUsers> _userManager

@{
    var getUserId = _userManager.GetUserId(_httpContext.HttpContext.User);
}

<div>
 ...
</div>

 

  •  در کدهای بالا ابتدا فضانام مربوط به Identity را از طریق دستور using در view اضافه می کنیم.
  • سپس کلاس UserManager و اینترفیس IHttpContextAccessor را به ویو تزریق می کنیم.

حالا خیلی راحت می تونیم به آیدی کاربری که لاگین کرده در View دسترسی داشته باشیم. (اطلاعات بیشتر در مورد Identity در Asp.net core)

به این پاسخ امتیاز بدهید    2
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود