دسته بندی ها
16:03 1401/06/05

خطا در احراز هویت در Asp.net Core و هدایت به صفحه Access Denide

مشخصات سوال کننده :
کاربر : farhadrezazadeh     امتیاز کاربر : 3     رتبه کاربر : 136
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    1
تعداد بازدید این سوال : 1661
3 نظر
fateme : کدهایی که شما در سوالتون قرار دادید مربوط به عملیات ثبت نام هست. در این کدها نه احراز هویتی هست و نه دریافت نقش کاربر. طبیعی هست که این دستورات Authorize کار نکنه.

امتیاز کاربر : 1617   رتبه کاربر : 2   تاریخ ثبت : 06:01 1401/06/05
saedbfd : در جدول AspNetUserRole اطلاعات به درستی ثبت شده ؟

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 00:27 1401/06/06
saedbfd : دستوراتی که شما نوشتید همه درسته. احتمالا در جدول AspNetUserRoles اطلاعات به درستی ثبت نشده.

امتیاز کاربر : 1654   رتبه کاربر : 1   تاریخ ثبت : 07:13 1401/06/06
ادامه نظرات ...
پاسخ دهنده : hamid_b 18:09 1401/06/05

احراز هویت و دریافت نقش کاربران در Asp.net Core معمولا هنگام لاگین و یا ثبت نام و سپس لاگین انجام میشه. در کدهای شما فقط عملیات ثبت نام انجام شده. چند تا نکته رو چک کنید.

  • در جداول آیدنتیتی در Sql Server دقت کنید که در جدول AspNetUserRole باید نقش به کاربر اختصاص داده شده باشه.
  • در فایل Startup.cs از میان افزارهای زیر استفاده شده باشه.
app.UseAuthentication();
app.UseAuthorization();
  • هنگام لاگین یا قبل از Redirect کاربر به پنل کاربری حتما باید نقش های کاربر رو که در جدول AspNetUserRoles هست رو بدست بیارید توسط دستور زیر :
var roles = await _userManager.GetRolesAsync(user);

 

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