我正在使用ASP.NET MVC构建一个小型CMS系统,并且我有一个自定义角色提供程序,它使用由使用Castle Windsor实现的工厂实例化的userRepository。
拥有管理员权限的人可以使用后端管理来更改保存在数据库中的用户的角色。
但每当我登录我刚刚更改角色的用户(我暂时使用测试用户)时,角色都不会更新。我尝试了再次登出,没有结果 - 我使用的角色保持不变。我也尝试清除浏览器的缓存和cookie,再没有结果。
数据在数据库中正确更新。
我已经尝试输出登录用户的角色,因此我可以看到数据是否在我的自定义角色提供者中更新,但是角色提供者中的数据仍然保持不变。显然,角色提供者没有在每个请求中从数据库获取数据。
有趣的是,如果我改变一个角色并重新发布我的网站,那么改变就应该如此。它不是每次重新发布我的网站的选项,管理员改变用户的角色。那不是很有活力。
关于为什么会发生这种情况以及如何解决问题的任何想法?
答案 0 :(得分:0)
我猜你的角色提供者是一个单身人士,这是Windsor的默认生活方式,因此根据你实现它的方式,它可能会保留第一次请求时提取的数据。 使其成为PerWebRequest或瞬态。