0

我正在使用 ASP.NET MVC 构建一个小型 CMS 系统,并且我有一个自定义角色提供程序,它使用由使用 Castle Windsor 实现的工厂实例化的 userRepository。

具有管理员权限的人可以使用后端管理更改保存在数据库中的用户角色。

但是,每当我登录刚刚更改角色的用户(我目前使用测试用户)时,角色都不会更新。我尝试注销并再次登录,但没有结果 - 我使用的角色保持不变。我也试过清除浏览器的缓存和cookies,还是没有结果。

数据在数据库中正确更新。

我已经尝试为登录用户输出角色,所以我可以查看我的自定义角色提供者中的数据是否已更新,但角色提供者中的数据看起来保持不变。所以显然角色提供者没有从每个请求的数据库中获取数据。

有趣的是,如果我换了一个角色并重新发布了我的网站,那么改变就应该如此。它只是不是每次都重新发布我的网站的选项,管理员更改用户的角色。那不是很动态。

关于为什么会发生这种情况以及如何解决它的任何想法?

4

1 回答 1

0

我猜你的角色提供者是一个单身人士,这是 Windsor 的默认生活方式,因此取决于你如何实现它,它可能会保存它在第一次请求时提取的数据。使其成为 PerWebRequest 或瞬态。

有关生活方式的更多详细信息,请参阅文档

于 2010-06-29T21:53:18.710 回答