簡體   English   中英

當OperationContext.Current為null時訪問WCF MessageHeader

[英]Accessing a WCF MessageHeader when OperationContext.Current is null

我有一個使用自定義UserNamePasswordValidator保護的WCF。 我需要訪問通常可用的內容:

OperationContext.Current.RequestContext.RequestMessage.Headers.To

所以我可以解析URL。 但是,OperationContext.Current為null。 有沒有辦法在沒有OperationContext的情況下獲取郵件頭?

是的,可以通過Message Inspectors。

的OperationContext的過程中無法使用UserNamePasswordValidator.Validate方法,因為它會在管道中,當呼叫已被分派到相應的服務方法后創建的。

通常,您可以使用Message Inspectors在WCF管道中盡早攔截傳入和傳出消息。 但是,這在您的情況下不起作用 ,因為僅在成功驗證請求后才調用Message Inspectors

如果需要在身份驗證之前檢查傳入的HTTP請求 ,則唯一的選擇是在ASP.NET兼容模式下運行的IIS中托管WCF服務 這樣您就可以通過HttpContext類訪問請求的URL:

public override void Validate(string userName, string password)
{
    string url = HttpContext.Current.Request.Url.AbsoluteUri;
}

相關資源:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM