我正在使用自定义 UserNamePasswordValidator,它实例化并登录到我们的内部 API。
此 API 公开了一个当用户被“踢”(被另一个管理用户)时触发的事件,我想通过终止 WCF 会话来响应此事件,以便进一步的调用引发异常。
我该怎么做呢?
我的 WCF 服务托管在 Windows 服务(不是 IIS)中。实例化和登录内部 API 需要相当长的时间,因此我无法在每次服务调用时都执行此操作。
如果您希望该服务将使用用户名和密码对每个用户调用进行身份验证,那么您可以在验证器中拥有任何代码。但是,如果您希望使用每个会话服务实例,您可能还会使用安全上下文(安全会话)。在这种情况下,只有第一个请求由验证器进行身份验证,后续请求由建立安全上下文期间生成的令牌进行身份验证。
Edit:
每个正在运行的服务都由 InstanceContext 类表示。如果您有 PerSession 服务,则每次调用的 InstanceContext 都是相同的。如果您将对 InstanceContext 的引用存储在某处,您应该能够释放实例并关闭会话 - 我从未尝试过,但应该是可能的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)