Microsoft AzMan을 사용하는 웹 응용 프로그램을 만들었습니다. 여러 사용자가있을 때까지 제대로 작동합니다. AzMan이 여러 사용자에게 동일한 내용을 캐싱한다는 사실은 거의 100 % 확신합니다.AzMan 액세스 확인 캐시를 새로 고치는 방법은 무엇입니까?
약간 단순화하기 위해 사용자 A가 사이트에 접속하여 전체 액세스 권한을 갖고 있으며 사용자에게 올바른 액세스 권한이 부여되어 정상적으로 작동한다는 것을 알 수 있습니다. 그런 다음 사용자 B는 사이트로 이동하고보기 액세스 권한 만 갖지만 AzMan은 이미 사용자 A의 전체 액세스 권한을 보았 기 때문에 사용자 B에게도 전체 액세스 권한을 부여합니다.
모든 상황에서 사용할 수있는 유일한 방법이기 때문에 클라이언트 컨텍스트를 만들 때 AddStringSids 메서드를 사용하고 있습니다. 이 문제가 있습니까? 우리는 토큰에서 클라이언트 컨텍스트를 만들 때이 문제가 없었습니다.
다음은 컨텍스트를 만드는 데 사용하는 정확한 코드입니다. app은 IAzApplication2 변수이고 ClientContext.SID는 해당 사용자의 SecurityIdentifier입니다.
IAzClientContext2 cctx = app.InitializeClientContext2("AppNameHere", null);
cctx.AddStringSids(new object[] { (object)ClientContext.SID.ToString() } as object);
EDIT : 응용 프로그램에 역할을 인식해야하므로 ASP.Net 역할 공급자를 사용하지 않습니다. COM API 만 사용하고 있습니다.
EDIT 2 : 또한 사용자 B가 처음 로그인 한 경우 사용자 A는 로그인 할 때 액세스 할 수 없으므로 최고 수준의 액세스 만 유지하는 것이 아닙니다.