0

我有一个带有(EF)数据库的 ASP.NET WebForms 应用程序。

基本上我关心的两个表是用户和角色。在 Roles 中有:Id (pk)、UserId (fk)、Type : String - 其中包含 Admin、User、Moderator、Publisher 等。在 Users 中有:Id (pk)、Email、NameFirst、NameLast、Password、Username。

在设计器中,我将用户与角色连接起来,以便在角色 -> 用户 ID == 用户 ID 中。

现在,在创建一个从 RoleProvider 继承的类之后,在函数 GetRolesForUser(string username) 中,我想获取 id 为用户名的用户的所有角色的枚举。

因此,例如,如果我得到一个用户 Agon,我希望能够获得他所有角色的枚举以供以后使用,并在所述方法中将它们作为 string[] 返回。

因此,经过数小时的令人头晕目眩的尝试,我一直在不断地遇到错误。不知道从这里去哪里:

    public override string[] GetRolesForUser(string username)
    {
        using (SMEntities db = new SMEntities())
        {
            User user = db.Users.First(x => x.Username == username);
        }

        //throw new NotImplementedException();
    }
4

1 回答 1

1

我不确定枚举在哪里真正发挥作用,但以下情况如何:

    using (SMEntities db = new SMEntities())
    {
        User user = db.Users.First(x => x.Username == username);
        return user.Roles.Select(r => r.Type).ToArray();
    }
于 2013-02-11T22:02:05.493 回答