在自定义角色提供程序中注入存储库使我在Dispose错误后访问DataContext

时间:2010-12-31 00:27:59

标签: asp.net-mvc linq-to-sql asp.net-mvc-2

我目前正在构建一个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)的列,我的代码有一个带有我的角色的枚举。

由于

0 个答案:

没有答案