- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个使用自定义 UserNamePasswordValidator 进行保护的 WCF。我需要访问通常在以下位置可用的内容:
OperationContext.Current.RequestContext.RequestMessage.Headers.To
所以我可以解析 URL。但是,OperationContext.Current 为空。有没有办法在没有 OperationContext 的情况下获取消息 header ?
最佳答案
是的,可以通过 Message Inspectors 实现。
OperationContext在 UserNamePasswordValidator.Validate 期间不可用方法,因为它将在稍后的管道中创建,当调用被分派(dispatch)到适当的服务方法时。
通常,您会在 WCF 管道的早期使用 Message Inspectors 拦截传入和传出的消息。 。然而这对你的情况不起作用,因为Message Inspectors are invoked only after the request has successfully been authenticated .
如果您需要在身份验证之前检查传入的 HTTP 请求,您唯一的选择是在以 ASP.NET 兼容模式运行的 IIS 中托管您的 WCF 服务。这样您就可以通过 HttpContext 访问请求的 URL类:
public override void Validate(string userName, string password)
{
string url = HttpContext.Current.Request.Url.AbsoluteUri;
}
相关资源:
关于c# - 当 OperationContext.Current 为 null 时访问 WCF MessageHeader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3550718/
我想知道在服务器端显示所有 MessageHeaders 的最佳方式是什么。实际上我知道的唯一方法如下: OperationContext.Current.IncomingMessageHeaders
我有这段代码,由于某种原因没有写名称或命名空间或属性 public class MultiSpeakHeader : MessageHeader { protected override vo
我有一些服务,其中一项使用 Grails 2.4.2 (Spring 4.0.5) 实现,一些服务作为 Spring Web (Spring 4.0.5) 实现,一项使用 Spring Boot 1.
我有一个存储在“字符串”变量中的自定义 header ,我需要用“字符串”类型变量中的 header 替换来 self 的 WCF 客户端的传出 SOAP 请求的 header 。根据研究,我发现实现
我在 WCF 中有两个单独的消息协定: [MessageContract(WrapperName = "GetFooRequest", WrapperNamespace = "http://whate
我不明白什么时候应该放 [MessageHeader] 而不是 [MessageBodyMember]? 我有read它用于符合某些协议(protocol)(如 Soap),但它最终会改变什么? 最佳
我实现了 Message 接口(interface),以包含一些与服务器端 HeaderValueRouter 一起使用的 header 。 在一个虚拟机内,这是可行的(使用两个端点之间的过滤器进行测
我正在尝试在 WCF 中使用这个简单的代码: 客户端: ServiceContractClient proxy = new ServiceContractClient(); using (Operat
我正在阅读有关 MessageContract 和 MessageHeader 的内容,并试图了解在 MessageHeader 中发送一些信息的用例,而不是将其仅用作函数参数? 最佳答案 消息契约和
如果我使用像下面这样的代码将消息 header 添加到我的 OperationContext 中,所有 future 的传出消息是否都包含从我的应用程序的相同“运行”定义的任何新 ClientProx
我正在使用以下代码添加 WCF 自定义 header MessageHeader header = MessageHeader.CreateHeader("Key", "ns", "Value");
我的处理程序中有以下行: headers.put(EMPTY_FILE, true); 原因是: 2019-11-26 13:36:29.420 ERROR 2216 --- [sub-subscri
我正在使用 openpop.net 阅读电子邮件并在检查主题后打印它们。但是我停留在第一步,MessageHeader、RfcMailAddress 和 File 显示为错误 “找不到类型或 name
我有一个使用自定义 UserNamePasswordValidator 进行保护的 WCF。我需要访问通常在以下位置可用的内容: OperationContext.Current.RequestCon
下面的代码是在 Spring Integration 2.2.6 中设置 MessageHeader 的 'NEW' 键。 public Message getFlow() { return
如何编写单元测试,因为它包括内部调用其他方法。 public class MyService implements UserDestinationResolver { @Override
我有一个向客户端公开的 JAX-WS Webservice。当客户端调用它时,messageheader 将填充UserId。当请求来自客户端时,我尝试使用实用程序类在线程本地中设置此值,并在将响应发
我是一名优秀的程序员,十分优秀!