我有一个带有(EF)数据库的ASP.NET WebForms应用程序。
基本上我关注的两个表是用户和角色。 在角色中有:Id(pk),UserId(fk),类型:字符串 - 包含管理员,用户,主持人,发布者等。 在用户中有:Id(pk),电子邮件,NameFirst,NameLast,密码,用户名。
在设计师中,我将用户与角色连接起来,以便在角色中 - > UserId ==用户ID。
现在,在创建一个继承自RoleProvider的类之后,在函数GetRolesForUser(string username)中,我希望得到id为用户名的用户的所有角色的枚举。
因此,例如,如果我得到一个用户Agon,我希望能够获得所有角色的枚举以供以后使用,并在所述方法中将它们作为字符串[]返回。
因此,经过几个小时的麻木尝试,我得到了一致的错误。不确定从哪里开始:
public override string[] GetRolesForUser(string username)
{
using (SMEntities db = new SMEntities())
{
User user = db.Users.First(x => x.Username == username);
}
//throw new NotImplementedException();
}
答案 0 :(得分:1)
我不确定枚举在哪一个真正发挥作用,但以下情况如何:
using (SMEntities db = new SMEntities())
{
User user = db.Users.First(x => x.Username == username);
return user.Roles.Select(r => r.Type).ToArray();
}