دسته بندی ها
18:45 1398/07/20

دلیل false بودن User.Identity.IsAuthenticated بعد از Login چیست؟

مشخصات سوال کننده :
کاربر : fateme     امتیاز کاربر : 1617     رتبه کاربر : 2
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3413
پاسخ دهنده : mrhadiannet 23:24 1398/07/26

سلام دوست عزیز منطقی که شما در حال پیاده سازی آن می باشید اشتباه است البته به نظر خودم چرا؟؟؟؟؟ چون وقتی Result.Succeed موفق آمیز باشه و نتیجه درست رو برگدونه ینی کاربر لاگین کرده و دیگر نیازی به بررسی مجدد User.Identity.IsAutica.... نخواهد بود ضمنا استفاده از دستور  User.Identity...  در ویو های برنامه برای چک لاگین شدن کاربر برای نمایش قسمت خاصی از صفحه کابرد دارد نه در یک متد پست.

به این پاسخ امتیاز بدهید    0
امتیاز: 4 رتبه: 113
پاسخ دهنده : mrhadiannet 23:24 1398/07/26

شما باید بعد از دستور زیر کاربر را به صفحه مور نظر خود هدایت کنید.

   if (result.Succeeded)
به این پاسخ امتیاز بدهید    0
امتیاز: 4 رتبه: 113
پاسخ دهنده : fateme 23:24 1398/07/26

پاسخ به mrhadiannet

ممنون از شما بابت پاسخ ولی وقتی کاربر لاگین میکنه دلیل نمیشه که Authorize هم شده. من میخوام کاربر رو بعد از لاگین هدایت کنم به یک کنترلر. این کنترلر دارای نقش User هست و تا زمانی که دستور User.Identity.IsAuticate برابر با false باشه کاربر نمیتونه وارد این کنترلر بشه. لاگین کردن دلیل بر این نیست که کاربر به همه کنترلرها یا اکشن ها دسترسی داره.

به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
پاسخ دهنده : mohammad-i 14:35 1399/10/11

چرا Role های کاربر رو بررسی نمیکنی؟

کاربری که لاگین میکنه یه سری Role هم داره. با توجه به role ها هدایتش کن.

اگر هم role نداشت، یا لاگین نیست یا Authenticate نشده.

var UserRole = _userManager.GetRolesAsync(User).Result;

//redirect User
if (UserRole.Contains("Writer"))
  {
    return Redirect("/Writer/Home");
  }
else
  {
   return Redirect("/Viewer/Home");
  }

 

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