首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何刷新AzMan访问检查缓存?

如何刷新AzMan访问检查缓存?
EN

Stack Overflow用户
提问于 2009-07-24 16:55:29
回答 1查看 1.2K关注 0票数 3

我已经创建了一个使用Microsoft AzMan的web应用程序,它可以很好地工作,直到您有多个用户。我几乎100%确定AzMan正在为多个用户缓存相同的内容。

为了简化一下,我看到的问题是用户A访问站点并拥有完全访问权限,用户被授予正确的访问权限,并且可以正常工作。然后用户B转到该站点,只有查看访问权限,但是因为AzMan已经看到了用户A的完全访问权限,所以它也将完全访问权限授予用户B。

我在创建客户端上下文时使用AddStringSids方法,因为它是唯一适用于所有情况的方法。这有什么问题吗?当我们从令牌创建客户端上下文时,我们过去不会遇到这个问题。

下面是我用来创建上下文的确切代码。app是一个IAzApplication2变量,而ClientContext.SID是有问题的用户的SecurityIdentifier。

代码语言:javascript
复制
IAzClientContext2 cctx = app.InitializeClientContext2("AppNameHere", null);
cctx.AddStringSids(new object[] { (object)ClientContext.SID.ToString() } as object);

编辑:我根本没有使用ASP.Net角色提供程序,因为这需要应用程序知道角色。我只使用COM API。

编辑2:另外,如果用户B先登录,则用户A在登录时没有访问权限。因此,它不仅仅是保持最高级别的访问。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-24 20:47:23

我想过删除这个问题,但我觉得最好还是把它留在这里,这样可能会帮助其他犯了愚蠢错误的人。AzMan不会跨多个用户缓存访问检查结果。AddStringSids方法不是问题。问题出在我的代码中。

我有一个静态变量,它保存对客户端上下文的引用,并且只在应用程序的生命周期内创建一次,而不是在用户请求的生命周期内创建一次。这个静态变量是导致它接受第一人访问的原因-它的访问。

所以这是一个愚蠢的程序员错误,或者像我的老板所说的SBCK (椅子和键盘之间的缩写)。因此,如果您在ASP.Net中遇到类似的问题,请检查您的变量,并确保没有静态变量问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1178874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档