ASP.Net MVC 5如何使用具有多个登录名的Authorize属性(多用户表)

本文关键字:Authorize 属性 多用户 登录 MVC Net 何使用 ASP | 更新日期: 2023-09-27 18:23:52

我是ASP.NET MVC 5的新手。在我正在开发的项目中,我有两个用户表:一个用于客户,一个用于员工。我需要创建两个不同的登录表单:一个用于客户,一个用于员工。客户将可以访问网站的特定部分,员工将可以访问另一个不同的部分。每个部分都有自己的动作。如何使用Authorize属性从员工分发客户端?

ASP.Net MVC 5如何使用具有多个登录名的Authorize属性(多用户表)

您可以为不同类型的用户使用角色属性。

[Authorize(Roles="Users")]
public class UserController: Controller
{
}
[Authorise(Roles="Employees")]
public class EmployeeController: Controller
{
}

[Authorize(Roles = "User,Customer")]
public ActionResult RoleType()
{                        
    return View();
}
public class MyController : Controller
{
    private const string UserRole = "User";
    private const string EmployeeRole = "Employee";
    [Authorize(Roles = UserRole + "," + EmployeeRole)]
    public ActionResult UserOrEmployee()
    {                        
        return View();
    }
}

现在只有具有该角色的用户才能访问控制器。例如,雇员控制器只能由角色类型为"雇员"的用户访问,用户控制器只能由类型为"用户"的用户进行访问。

关于创建不同的登录表单,这根本没有必要。您可以为两个角色使用一个登录表单,但根据您登录时希望看到的内容,您可以使用User.IsInRole来验证并重定向它们或您选择的其他操作。

当然,这是对"阿卡姆主义者"提供的答案的补充。