Question

I have an ASP.NET WebForms application with a (EF) database.

Basically the two tables I'm concerned with are Users and Roles. In Roles there's: Id (pk), UserId (fk), Type : String - which contains either Admin, User, Moderator, Publisher, etc. In Users there's: Id (pk), Email, NameFirst, NameLast, Password, Username.

In designer I connected Users with Roles so that in Roles -> UserId == Id of User.

And now, after creating a class that inherits from RoleProvider, in function GetRolesForUser(string username) I want to get the enum of all the roles of a user whose id is that of the username.

So for instance if I get a user Agon, I want to be able to get an enum of all his roles for later use and also return them as string[] in said method.

So for after hours of head-numbing attempts I've been getting consistent errors. Not sure where to go from here:

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

        //throw new NotImplementedException();
    }
Was it helpful?

Solution

I'm not sure where enums come into play really on this one, but how about the following:

    using (SMEntities db = new SMEntities())
    {
        User user = db.Users.First(x => x.Username == username);
        return user.Roles.Select(r => r.Type).ToArray();
    }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top