دسته بندی ها
16:03 1401/06/05
خطا در احراز هویت در Asp.net Core و هدایت به صفحه Access Denide
با سلام و احترام ... در پروژه من با وجود اینکه در جدول Role نقشهای User , Admin تعریف شده وقتی [Authorize] کاربر و ادمین به پنل مربوطه هدایت میشن ولی وقتی از اتریبیوت [Authorize(Roles = "User")] یا [Authorize(Roles = "User")] استفاده میکنم به صفحه Access Denide هدایت میشه .. در ضمن نقش توسط ادمین سیستم تعیین میشود .. ممنون میشم از راهنمایی دوستان
if (ModelState.IsValid)
{
try
{
//Register
var userphone = await _userManager.FindByNameAsync(model.UserName);
if (userphone != null)
{
ModelState.AddModelError("UserName", "شماره تماس شما از قبل وجود دارد.");
return View();
}
var mapUser = _mapper.Map<ApplicationUsers>(model);
mapUser.PhoneNumber = model.UserName;
mapUser.Gender = r1;
mapUser.IsActive = false;
IdentityResult result = await _userManager.CreateAsync(mapUser, model.Password);
if (result.Succeeded)
{
TempData[SuccessMessage] = "ثبت نام با موفقیت انجام شد";
return RedirectToAction("SuccesfullyRegister");
}
return RedirectToAction("Error", "Home");
}
البته وقتی این دستور رو میدم بدون مشکل وارد پنل کاربر میشه ولی پنل ادمین خیر
...
await _userManager.AddToRoleAsync(mapUser, "User");
...
ویرایش شده در یکشنبه 6 شهریور 1401 ساعت 19:15:02
مشخصات سوال کننده :
کاربر : farhadrezazadeh
امتیاز کاربر : 3
رتبه کاربر : 136
به این سوال امتیاز بدهید
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);
آخرین سوالات ثبت شده
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
سوالات مرتبط
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.
 
ورود