我目前正在构建一个ASP.NET MVC应用程序,我想利用带有角色的authorize属性,而不必使用默认提供程序及其自动生成的所有表。
我决定构建自己的自定义角色提供程序(我的类继承自RoleProvider)并只实现一个方法:
public override string[] GetRolesForUser(string username)
{
Account account = accountRepository.FindByUserName(username);
string[] role = new string[] { account.Role };
return role;
}
我的控制器如下:
[Authorize(Roles = "Administrator")]
public ActionResult Index()
{
return View();
}
我正在使用Unity将存储库注入我的自定义角色提供程序类,该类工作得很好但是当调用FindByUserName(用户名)时,我得到的错误是:
无法访问已处置的对象。对象名:'Dispose后访问的DataContext。'。
由于某种原因,Linq2Sql不喜欢发生什么,我在这里有点不知所措。任何见解都会非常有帮助。此外,如果有人设法做我正在尝试做的事情而不使用任何角色提供者,请告诉我。我的数据库中的帐户表有一个名为role(int)的列,我的代码有一个带有我的角色的枚举。
由于