باسلام و احترام در پروژه ای که دارم کاربر بر اساس احراز هویت و ساختن توکن باید وارد برنامه و پنل خود شود برنامه مرتب با مشکل مواجه میشود و تازمانی که در کنترولر AccountController بخش های زیررا غیر فعال نکنی به هیچ عنوان کاربرقادر به ورود به پنل اصلی خود نمی باشد
var claims = new List<Claim>()
{
new Claim("Token", result.Result.Token),
new Claim("Role", result.Result.Roles.ToString()),
new Claim("UserID", result.Result.UserID),
new Claim(ClaimTypes.Role, string.Join(",",result.Result.Roles))
};
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var principal = new ClaimsPrincipal(identity);
var properties = new AuthenticationProperties
{
IsPersistent = true,
ExpiresUtc = DateTime.UtcNow.AddHours(6)
};
await HttpContext.SignInAsync(principal, properties);
_config["FiscalYear"] = FiscalYear + "";
_config["UserID"] = claims[2].Value;
با حذف توکن مقدار _config["UserID"] = claims[2].Value; را نیز باید به _config["UserID"] = claims[1].Value; تبدیل کرده
همچنین در بخش api نیز در کنترولر AccountApiController باید تغییرات زیر را اعمال کرد تا کاربر که درابتدا برنامه ثبت دیتا بیس شده است بتواند بدون مشکل وارد برنامه شود.
public class AccountApiController : ControllerBase
{
private readonly UserManager<ApplicationUsers> _userManager;
private readonly SignInManager<ApplicationUsers> _signInManager;
private readonly IJwtTokenGenerator _token;
public AccountApiController(UserManager<ApplicationUsers> userManager,
SignInManager<ApplicationUsers> signInManager,
IJwtTokenGenerator token)
{
_userManager = userManager;
_signInManager = signInManager;
_token = token;
}
قابل ذکر که تا تغییرات فوق را اعمال نکنی هیچ کاربری نمی تواند وارد پنل ادمین شود با postmane هم چک کرده ام کلا توکن را نمی سازد الان فصل 85 دوره هستم دوسه بار همه مسیرهایی رو که در آموزش گفته شد را انجام دادم ولی بازم هم توکن را نمی سازد و زمانی که توکن ایجاد نشود مرتب در پنل login پیام نام کاربری و پسورد اشتباه است را صادر می کند ولی به محض اینکه تغییرات فوق اعمال می شود وارد همه بخش ها شده حتی userid مربوط هم در همه ثبت ها در فیلد مربوط ثبت می شود از آنجایی که این آموزش را صرفا به خاطر بخش jwt آن تهیه نموده ام الان واقعا ناامیدم استاد گرامی که چرا علی رقم همه راهنمایی های عالی شما در برنامه (جز بهترین آموزش هایی بود که تا الان در این زمینه دیده ام) چرا احراز هویت به درست اعمال نمی شود ممنون میشم راهنمایی بفرمایید با تشکر.
سلام
بله jwt منم به مشکل خورد ولی با netcore 7 هیچ مشکلی نبود زمانی که پروژه خودم که پروژه خودم رو به netcore 8 آپدیت کردم خطا پیش اومد و توکن ساخته نمیشد
مشکل زمانی حل شد که داخل فایل appsettings.json مقدار TokenKey رو تعداد ارقام رو 2 برابر کردم یعنی تعداد کاراکتر هارو 2 برابر کردم و مشکل کاملا حل شد
تاریخ :
1403/09/22
- ساعت :
05:58:00 PM
- بازدید :
30
- پاسخ :
0
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
161
- پاسخ :
2
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2362
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
102
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
154
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
185
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1103
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
509
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1402
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4846
- پاسخ :
1
|
تاریخ :
1403/09/22
- ساعت :
05:58:00 PM
- بازدید :
30
- پاسخ :
0
|
تاریخ :
1403/09/06
- ساعت :
09:51:00 PM
- بازدید :
161
- پاسخ :
2
|
تاریخ :
1400/07/17
- ساعت :
10:39:00 PM
- بازدید :
2362
- پاسخ :
0
|
تاریخ :
1403/09/05
- ساعت :
06:32:00 PM
- بازدید :
102
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2061
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
154
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
185
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1103
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
509
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
967
- پاسخ :
1
|