The*_*edi 8 .net authentication wcf http http-authentication
所有这些都与WebHttp绑定有关,托管在自定义服务主机中(此时IIS不是一个选项).
我已经实现了自定义UserNamePasswordValidator和自定义IAuthorizationPolicy.当我将端点的绑定配置为使用基本身份验证时,一切都可以正常工作(自定义主体,自定义角色等).
我也想添加匿名HTTP访问的能力,并让我的自定义实现将匿名用户置于某些默认角色等等.(如果没有发送Authenticate标头).
现在发生的事情是,在我的任何自定义代码被命中之前,匿名用户被给予401.如果我关闭HTTP基本身份验证要求,则完全忽略Authenticate标头.
如何配置或注入Authenticate标头,以两种方式执行此操作(不创建2个单独的端点)?
首先,根据规范,服务正确响应匿名调用。
其次,这是不可能的。当您自托管服务并且有一些 http 绑定时,WCF 将使用一个System.Net.HttpListener
实例来响应 http 请求(在 中创建System.ServiceModel.Channels.SharedHttpTransportManager.OnOpen
)。该侦听器有一个名为的方法HandleAuthentication
,该方法在调用任何自定义代码之前调用。它负责发回带有质询(WWW-Authenticate)的 401 响应。您对此无能为力。如果有的话我很想知道。
所以你有以下选择:
归档时间: |
|
查看次数: |
2647 次 |
最近记录: |