当我运行Roles.GetRolesForUser("username")时,角色被正确返回,但是,如果我将用户添加到AD中的角色中,结果不会显示,直到我将该用户从他们的系统中注销,并让他们重新登录。
有没有办法让系统每次都重新检查?
发布于 2009-07-01 21:56:37
如果您正在使用内置的角色提供程序,则可以在web.config中使用一个设置来更改此设置: cacheRolesInCookie。我相信这在默认情况下是正确的。
当然,这需要在每次发生角色查找时进行数据库查找(当然,如果您使用的是db ),因此这可能不是一个好主意。否则,我认为您必须编写自己的提供程序,这非常容易。只需创建一个继承自RoleProvider的新类,并提供您自己的实现。您可以在您的实现中处理(或不处理)缓存。
如果您想查看内置角色提供程序的内部工作原理,请下载Reflector。这是一个很棒的工具。
编辑
对不起,我重新阅读并注意到您正在使用AD。因此,只需对web.config中的提供程序设置进行更改即可。
https://stackoverflow.com/questions/1071541
复制相似问题