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

时间:2015-11-02 15:32:05

标签: c# asp.net-mvc asp.net-authorization

我正在使用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方法中返回其角色值?非常需要这个帮助。感谢。

1 个答案:

答案 0 :(得分:1)

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;
    }
}