Restful WCF 网络服务中未收到来自我的控制台的授权 Header
Authorization Header from my console not received in Restful WCF webservice
我实际上是 C# 的新手,我目前正在构建一个简单的基本 Restful WCF 网络服务,它使用自定义 header 授权来处理请求
public void validateHeader(string requestBody)
{
try
{
IncomingWebRequestContext WebReq = WebOperationContext.Current.IncomingRequest;
string requestedURL = WebReq.UriTemplateMatch.RequestUri.OriginalString;
string clientHeader = WebReq.Headers["Authorization"];
if (clientHeader.Substring(0, 3) != "amx")
{
BuildUnauthorizedError("Unknown header");
}
然后我使用 Postman 对其进行了调试,添加了授权 Header 值,它可以正常工作
但问题是,当我尝试使用此控制台应用程序调试 WCF 时:
try
{
string requestURL = "http://localhost:62146/ORIListenerService.svc/GetDataStatusPembayarans";
var request = (HttpWebRequest)WebRequest.Create(requestURL);
request.Method = "GET";
request.ContentType = "application/json";
request.PreAuthenticate = true;
request.Headers.Add("Authorization","amx 12345");
var response = (HttpWebResponse)request.GetResponse();
甚至在 WCF 上都没有收到授权 header
我还尝试用随机文本填充 header 值,除了授权之外,它都是在 WCF 上收到的。
我是漏掉了什么还是我做错了?
提前致谢
尝试在请求中添加 "Accept" header 参数,谢谢。
我找到了解决方案,结果我错过了请求中的尾随 /
URL。
我在[OperationContract]
的UriTemplate
是这样的
UriTemplate = "/GetDataStatusPembayarans/"
但是我打电话给URLhttp://localhost:62146/GetDataStatusPembayarans
我实际上是 C# 的新手,我目前正在构建一个简单的基本 Restful WCF 网络服务,它使用自定义 header 授权来处理请求
public void validateHeader(string requestBody)
{
try
{
IncomingWebRequestContext WebReq = WebOperationContext.Current.IncomingRequest;
string requestedURL = WebReq.UriTemplateMatch.RequestUri.OriginalString;
string clientHeader = WebReq.Headers["Authorization"];
if (clientHeader.Substring(0, 3) != "amx")
{
BuildUnauthorizedError("Unknown header");
}
然后我使用 Postman 对其进行了调试,添加了授权 Header 值,它可以正常工作
但问题是,当我尝试使用此控制台应用程序调试 WCF 时:
try
{
string requestURL = "http://localhost:62146/ORIListenerService.svc/GetDataStatusPembayarans";
var request = (HttpWebRequest)WebRequest.Create(requestURL);
request.Method = "GET";
request.ContentType = "application/json";
request.PreAuthenticate = true;
request.Headers.Add("Authorization","amx 12345");
var response = (HttpWebResponse)request.GetResponse();
甚至在 WCF 上都没有收到授权 header
我还尝试用随机文本填充 header 值,除了授权之外,它都是在 WCF 上收到的。 我是漏掉了什么还是我做错了?
提前致谢
尝试在请求中添加 "Accept" header 参数,谢谢。
我找到了解决方案,结果我错过了请求中的尾随 /
URL。
我在[OperationContract]
的UriTemplate
是这样的
UriTemplate = "/GetDataStatusPembayarans/"
但是我打电话给URLhttp://localhost:62146/GetDataStatusPembayarans