سلام دوستان. بنده یک فرم لاگین دارم که بعد از لاگین کاربر باید به Area مخصوص به خودش Redirect بشه. هر کاربر یک Role هم داره که وقتی لاگین میکنه نقش کاربر هم مشخص هست.
دستوراتی که برای لاگین نوشتم :
public async Task<IActionResult> Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, true, lockoutOnFailure: false);
if (result.Succeeded)
{
if (user.UserType == 1)
{
return Redirect("/AdminPanel/Admin/Index");
}
}
else
{
ModelState.AddModelError("Password", "اطلاعات ورود صحیح نیست");
return View(model);
}
}
return View(model);
}
در دستور بالا همونطوری که می بینید بعد از اینکه UserName و Password درست بود باید به مسیر مشخص شده ریدایرکت بشه. ولی در همون صفحه لاگین میمونه.
کنترلر AdminController
[Area("AdminPanel")]
[Authorize(Roles = "AdminArea")]
public class AdminController : Controller
{
public IActionResult Index()
{
return View();
}
}
در کلاس Startup
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
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.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseAuthentication();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
//AdminPanel
endpoints.MapAreaControllerRoute(
"AdminPanel",
"AdminPanel",
"AdminPanel/{controller=Admin}/{action=Index}/{id?}");
//TeacherPanel
//default
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Account}/{action=Login}/{id?}");
});
}
دستوراتی که نوشتید درسته. فقط کافیه در Startup.cs و در متد Configure جای دو میان افزار UseAuthentication و UseAuthorization رو عوض کنید.
//1
app.UseAuthentication();
//2
app.UseAuthorization();
ترتیب به کارگیری این دو میان افزار مهمه.
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
80
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
115
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
433
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1357
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
217
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
117
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
397
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
568
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
80
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
115
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
433
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1357
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|