根据角色更改ASP.Net MVC登录重定向,可以通过以下步骤实现:
RedirectToAction
方法进行重定向。以下是一个示例代码:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindAsync(model.Email, model.Password);
if (user != null)
{
await SignInAsync(user, model.RememberMe);
// 获取用户的角色信息
var roles = await UserManager.GetRolesAsync(user.Id);
// 根据角色设置重定向的目标URL
string redirectUrl = "";
if (roles.Contains("Admin"))
{
redirectUrl = "Admin/Index";
}
else if (roles.Contains("User"))
{
redirectUrl = "User/Index";
}
else
{
redirectUrl = "Home/Index";
}
// 使用RedirectToAction方法进行重定向
return RedirectToAction(redirectUrl);
}
else
{
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
在这个示例中,我们首先获取用户的角色信息,然后根据角色设置重定向的目标URL,最后使用RedirectToAction
方法进行重定向。
注意,在这个示例中,我们假设有三个角色:Admin、User和Guest。如果用户是Admin角色,则重定向到Admin/Index
,如果用户是User角色,则重定向到User/Index
,否则重定向到Home/Index
。
这只是一个示例,您可以根据自己的需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云