在asp.net mvc中管理两个或多个表的Roleprovider

本文关键字:两个 Roleprovider net asp mvc 管理 | 更新日期: 2023-09-27 18:20:24

我正在使用Asp.net mvc4&EF6,其中我有两个表供管理员&用户和我希望为每个用户设置授权角色。

到目前为止,我已经成功地为users设置了角色,但如果我有两个或多个模型,我不知道如何在自定义RoleProvider类中设置角色。这是我的代码:

public class MgtRoleProvider : RoleProvider
{
    public override string[] GetRolesForUser(string username)
    {
        rental_dbEntities db = new rental_dbEntities();
        string userRole = db.TblUsers.Where(a => a.username == username).FirstOrDefault().role;
        string[] result = { userRole };
        return result;
    }
}

如何在GetRolesForUser方法中设置两个或多个模型并返回它们的角色值?

在asp.net mvc中管理两个或多个表的Roleprovider

TblAdmins表添加第二个查询并同时返回它们:

public class MgtRoleProvider : RoleProvider
{
    public override string[] GetRolesForUser(string username)
    {
        rental_dbEntities db = new rental_dbEntities();
        string userRole = string.Empty;
        string adminRole = string.Empty;
        var user = db.TblUsers.Where(a => a.username == username).FirstOrDefault()
        if (user != null)
        {
            userRole = user.role;
        }
        var admin = db.TblAdmins.Where(a => a.username == username).FirstOrDefault();       
        if (admin != null)
        {
             adminRole = admin.role;
        }
        string[] result = { userRole, adminRole };
        return result;
    }
}