我为项目实现了一个自定义RoleProvider.RoleProvider可以工作,但我用来获取用户角色的存储库仅在构建后填充.当我logOff,更改用户的角色,再次登录时,用户仍然保留旧角色.
public class CmsRoleProvider : RoleProvider
{
private EntityDB _db { get; set; }
public CmsRoleProvider()
{
_db = new EntityDB();
}
public override string[] GetRolesForUser(string username)
{
var user = _db.Users.Where(u => u.EmailAddress == username).SingleOrDefault();
var roles = user.UserRoles.Select(u => u.Role.Name).ToList<string>();
return roles.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,用户只在构建项目后才能获得正确的角色.当我在GetRolesForUser函数中创建存储库时,它工作正常.
是否存在缓存问题?谁可以帮助我.