.net - 在 HttpBinding 中进行 HTTP 身份验证之前操作 WCF 中的 HTTP header

标签 .net wcf http-headers wcf-binding

这与 this question 有关

我在自定义服务主机中托管此 WCF 服务。 IIS 不是一个选项。

有没有办法在请求过程的早期在服务器堆栈中注入(inject) HTTP“Authenticate” header (如果缺少) - 以便可以将默认用户传递到身份验证/我有针对匿名请求的授权流程吗?

我需要服务器将其注入(inject)接收端 - 在进一步 WCF 处理之前...

我很确定我可以使用自定义 BindingElement 或扩展 WebHttpBinding 来完成此操作,但任何示例或指导将不胜感激。我在 WCF 中找不到任何早期 header 操作(预身份验证)的示例。

最佳答案

通过实现 IDispatchMessageInspector,您可以插入管道服务器端;并操纵消息。

在 AfterReceiveRequest 方法中,您可以非常愉快地添加到 Request.Headers 中。

用行为属性包装它并将其应用到您的服务。

关于.net - 在 HttpBinding 中进行 HTTP 身份验证之前操作 WCF 中的 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/213259/

相关文章:

c# - 异步/等待与线程

c# - 在通用方法中传递/指定一个属性?

.net - 我只能使用 OWIN UseStaticFiles 提供一个文件

c# - 根据方法参数生成唯一的缓存键

c# - 为什么这个简单的 RESTful WCF 服务会因 404 错误而失败?

http-headers - 冒号和等号在 http header 中的处理方式相同吗?

javascript - 在 window.open 请求中添加 header 的可能方法

javascript - Angular 5 - 具有特定 header 的 http 帖子

wcf - 虚拟属性是否需要 [DataMember] 属性?

wcf - 元素 'behavior' 在 wcf app.config 中具有无效的子元素 'myFaultExtension'