以下问题假设我们在WAS中与Asp.Net并行托管WCF服务:
"当与Asp.Net并行托管WCF时 - WCF托管基础架构在引发PostAuthenticateRequest事件时拦截WCF请求,并且不会将处理返回到ASP.NET HTTP管道.编码为在后续阶段拦截请求的模块管道不拦截WCF请求."
"通过并行配置,WCF托管基础架构拦截WCF消息并将它们路由出HTTP管道"
a)假设WAS收到WCF服务请求,是否会在引发事件时调用WCF的身份验证机制(Windows,MembershipProvider或自定义身份验证)PostAuthenticateRequest,或者只有在将请求路由到HTTP管道之后,WCF才会对请求进行身份验证?换句话说,WCF的身份验证机制是否在IIS的处理管道之外工作?
b)如果WCF的身份验证机制在IIS处理管道之外工作,那么我假设FormsAuthenticationModule不涉及验证WCF客户端(假设服务正在使用表单身份验证)?
c)另外,如果WCF的身份验证机制在IIS处理管道之外工作,那么我假设IIS/WAS必须配置为匿名身份验证,即使服务是使用Windows身份验证的身份验证客户端?
d)如果WCF服务由IIS7托管,那么上述问题的答案会有所不同(除了服务必须只使用通过HTTP协议通信的端点这一事实)?
谢谢
我建议实施一个技术尖峰项目。
在核心,您始终可以实现代码访问属性来保护您的操作合同。
您可以首先应用PrincipalPermission(内置),在Thread.CurrentPrincipal(wcf服务的构造函数)上设置IPrincipal,当托管在IIS中时,您可以设置HttpContext.Current.User,但是在您的情况下HttpContext将为空。要使用PrincipalPermission,您需要拥有创建/实现IPrincipal 的能力。
| 归档时间: |
|
| 查看次数: |
415 次 |
| 最近记录: |