c# - 在 Restful WCF Web 服务中未收到来自我的控制台的授权标头
问题描述
我实际上是 C# 的新手,我目前正在构建一个简单的基本 Restful WCF Web 服务,它使用自定义标头授权来处理请求
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 对其进行了调试,并添加了 Authorization 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 上甚至没有收到 Authorization 标头
我还尝试用随机文本填充标题值,除了授权之外,它都在 WCF 上收到。我是遗漏了什么还是我做错了?
提前致谢
解决方案
我找到了解决方案,结果发现我错过了/
requestURL 中的尾随。
我UriTemplate
的in[OperationContract]
是这样的
UriTemplate = "/GetDataStatusPembayarans/"
但我打电话给网址http://localhost:62146/GetDataStatusPembayarans
推荐阅读
- sql-server - 从工资 > N 的多个连接表中查找前 2 个最高工资
- elasticsearch - Elasticsearch - 找到每个特征的最小值和最大值
- google-apps-script - 您无权执行该操作。请请求此项目的所有者授予您访问权限
- ubuntu - 由于访问被拒绝异常,Cassandra 未启动
- python - Python:使用 gmap.marker_layer 选项在地图上标记标签无法使用 hover_text
- tsql - 我可以在计算列选择案例中抛出错误吗?
- java - 为什么 Java 没有 async/await?
- javascript - 一起执行功能
- xamarin - 选择器选定的项目在零位置显示类名
- laravel-5 - Phpspreadsheet 将帐号四舍五入并从开头删除 0