با سلام استاد
پروژه جدیدی را با دات نت 6 شروع کردم ولی بعد از ورود موفقیت آمیز در صورتی که صفت Authorize را می دهم به اکشنی دوباره من را به صفحه لاگین ارجاع می دهد آیا در دات نت 6 تنظیم خاصی دارد؟
سلام دوست عزیز 🖐️
دستور
app.UseAuthentication();
app.UseAuthorization();رو در فایل Program.cs قرار دادید ؟
با تشکر 🙏
بله این خط کد رو هم به بهش اضافه کردم
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.LoginPath = "/Login";
options.LogoutPath = "/Logout";
options.ExpireTimeSpan = TimeSpan.FromHours(24);
});دوست عزیز اینکه درسته پایین تر اونجا که دستوراتش با app شروع میشه دستورات بالا رو اضافه کردید ؟
شما بجز Add کردن Authentication اون رو مثل تصویر پایین Use هم کردین ؟

با تشکر 🙏
این را قرار دادم
app.UseStaticFiles();
app.UseHttpsRedirection();
app.UseMvcWithDefaultRoute();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
دوست عزیز اتصال پروژتون http هست یا https ؟
با تشکر 🙏
سلام
با یک مروگر دیگه تست کنید ، ممکنه از مرورگر باشه
با مرورگر های دیگه هم تست کردم فعلا روی لوکال هاست هست من قبلا با دات نت 3.1 بدون مشکل احراز می شد تو دات نت 6 نمی دونم چرا بعد لاگین موفق دوباره پاس میده روی لاگین
دوست عزیز توی حالت ناشناس (Incognito) مرورگر هم تست کنید ببینید آیا اونجا هم به همین صورته ؟
با تشکر 🙏
فقط ترتیبشون مشکل نداره ؟
builder.Services.AddControllersWithViews();
builder.Services.AddMvc(options => options.EnableEndpointRouting = false);
#region Authentication
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
}).AddCookie(options =>
{
options.LoginPath = "/Login";
options.LogoutPath = "/Logout";
options.ExpireTimeSpan = TimeSpan.FromHours(24);
});
#endregion
#region Database Context
builder.Services.AddDbContext<ManaCrmContext>(options =>
{
options.UseSqlServer(builder.Configuration.GetConnectionString("ManaCrmConnection"));
});
#endregion
#region Ioc
builder.Services.AddTransient<IUserService, UserService>();
#endregion
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseStaticFiles();
app.UseHttpsRedirection();
app.UseMvcWithDefaultRoute();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run(); به نظر که درست هستن
شما توی حالت ناشناس با مرورگر های متفاوت امتحان کردین ؟
با تشکر 🙏
سپاس از پاسخگوییتان نه با حالت inCongnito هم جواب نداد
دوست عزیز کد های اکشن لاگینتون تون رو میفرستید ؟
با تشکر 🙏
تقریبا کدی هستند که استاد درس داده بودند و من جواب گرفته بودم البته با کپچا میزارم معمولا
public async Task<IActionResult> Login(LoginViewModel login)
{
if (!ModelState.IsValid)
{
return View(login);
}
var user = _userService.LoginUser(login);
if (user != null)
{
if (user.IsActive)
{
var claims = new List<Claim>()
{
new Claim(ClaimTypes.NameIdentifier, user.UserId.ToString()),
new Claim(ClaimTypes.Name, user.UserName)
};
var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var principal = new ClaimsPrincipal(identity);
var properties = new AuthenticationProperties
{
IsPersistent = login.RememberMe
};
//Login Here
HttpContext.SignInAsync(principal, properties);
ViewBag.IsSuccess = true;
return View();
}
else
{
ModelState.AddModelError("Email", "حساب کاربری شما فعال نمی باشد ");
}
}
ModelState.AddModelError("Email", "نام کاربری یا رمز عبور نادرست است");
return View(login);
#endregion
}مستنداتش در مایکروسافت را مطالعه کنید
استاد مستنداتش رو پیدا نکردم در خود سایتش از identity اسکفولدینگ استفاده کرده