我需要扩展内置 WCF 身份验证,因此我的新身份验证应该与内置身份验证并排工作。
例如,我想允许从注册 IP(自定义身份验证)或用户名+密码(内置身份验证)访问。
我已经成功实施ServiceAuthenticationManager
和ServiceAuthorizationManager
.
ServiceAuthenticationManager.Authenticate
只需将IPrincipal
实现添加到消息属性,从传入消息属性ServiceAuthorizationManager.CheckAccessCore
复制到属性。IPrincipal
AuthorizationContext
但是,ServiceAuthenticationManager.Authenticate
即使我返回authPolicy
或base.Authenticate
调用结果,对于标准机制也是完全破坏的。
也许我走错了方向?添加自定义 WCF 身份验证而不影响现有身份验证的正确方法是什么?如果自定义失败,如何回退到内置身份验证?