WCF API 和 API Key 授权
已编写或开始在 WCF 中编写 WEB API Rest 服务。一切进展相对顺利。但是,我遇到了一个小问题。我已经实现了这个;
用于密钥验证。 (我不确定这是否是 WCF WEB API 的正确方法,因为它看起来更像其余服务实现)。
无论如何,它似乎有效。但是,如果未提供 api 密钥,则浏览器中不会显示异常。即,如果我提供密钥,它会正确返回,如果我不提供,它只会显示一个空白页。
private static void CreateErrorReply(OperationContext operationContext, string key)
{
// The error message is padded so that IE shows the response by default
using (var sr = new StringReader("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + APIErrorHTML))
{
XElement response = XElement.Load(sr);
using (Message reply = Message.CreateMessage(MessageVersion.None, null, response))
{
HttpResponseMessageProperty responseProp = new HttpResponseMessageProperty() { StatusCode = HttpStatusCode.Unauthorized, StatusDescription = String.Format("'{0}' is an invalid API key", key) };
responseProp.Headers[HttpResponseHeader.ContentType] = "text/html";
reply.Properties[HttpResponseMessageProperty.Name] = responseProp;
operationContext.RequestContext.Reply(reply);
// set the request context to null to terminate processing of this request
operationContext.RequestContext = null;
}
}
}
结果不是显示错误,而是空白响应。有人可以帮忙吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论