为什么我没有拿到肥皂头?

时间:2010-10-01 14:30:55

标签: wcf

为什么在WCF 4.0中这么难?

我在客户端添加自定义标题

授权:18732818 gfdsgShoyh3sfayql6jWCRc =

以便我的标题如下所示

  

获取http://HOSTNAME/Public/Xml/SyncReply/TestClearUsername?Id=1 HTTP / 1.1

     

授权:18732818 gfdsgShoyh3sfayql6jWCRc =

     

主持人:HOSTNAME

     

连接:Keep-Alive

在我的有线服务响应器中,我可以访问属性Id并获取值1.我还想访问值Authorization,但它总是显示为null。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

经过大量的谷歌搜索后,我终于找到了答案,所以我会在这里发布,以便它可能对其他人有用。我假设这是一个没有记录的功能,因为它是如此隐蔽,但其他人可能知道不同。

我发现此枚举System.Web.HttpWorkerRequest.HeaderAuthorization(值= 24)

和此方法System.Web.HttpWorkerRequest.GetKnownRequestHeader(24)

总结一下授权隐藏的原因是它是一个保留的标头值。如果您添加一个随机单词并想要检索,则可以使用。

.GetUnknownRequestHeader("YOUR_WORD_HERE").

所以你需要

HttpRequestContext hrc = (HttpRequestContext)this.RequestContext;

RequestAttributes ra = (RequestAttributes)hrc.RequestAttributes;

System.Web.HttpWorkerRequest hwr = ra.HttpWorkerRequest;

string Auth = hwr.GetKnownRequestHeader(System.Web.HttpWorkerRequest.HeaderAuthorization);