使用 WCF 创建需要身份验证并使用 JSON 作为输入/输出格式的 RESTful Web 服务
我想将现有的 ASP.NET Web 服务移植到 WCF,以便生成的 Web 服务 (1) 是 RESTful,(2) 使用 JSON 作为其请求/响应格式,(3) 具有自定义身份验证机制。
经过大量的谷歌搜索、随机编码以及想把头撞到墙上之后,我发现...
必须使用
webHttpBinding
来使 Web 服务 RESTful。但是...webHttpBinding
不支持 HTTPS 主机。webHttpBinding
不支持用户名身份验证。webHttpBinding
甚至不支持消息安全性。
必须使用
的端点行为来支持 ASP.NET AJAX。但是...什么是“ASP.NET”AJAX?
如果我想使用“常规”AJAX 使用 Web 服务怎么办?
而且,最重要的是...
WCF 可以做我想做的事情吗?
如果没有,我还可以使用哪些其他平台?
I want to port an existing ASP.NET Web Service to WCF so the resulting Web Service (1) is RESTful, (2) uses JSON as its request/response format, (3) has a custom authentication mechanism.
After a lot of googling, random coding, and wanting to hit my head against the wall, I found that...
A
webHttpBinding
has to be used to make the Web Service RESTful. But...webHttpBinding
does not support HTTPS hosts.webHttpBinding
does not support UserName authentication.webHttpBinding
does not even support message security.
An endpoint behavior with
<enableWebScript/>
has to be used to support ASP.NET AJAX. But...What is "ASP.NET" AJAX?
What if I want to consume the Web Service using "regular" AJAX?
And, most importantly...
Can WCF do what I want to do in first place?
If not, what other platforms could I use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我编写了 WCF 服务,它使用 XML 和 JSON 以及自定义身份验证执行 SOAP 和 REST。我已将自定义身份验证推送到 HTTP 模块中,该模块通过 https 进行基本身份验证。请参阅自定义.NET 3.5/VS 2008 上的 ASP.NET Web 服务的 HTTP 基本身份验证 和 WCF POX、JSON 和 SOAP 共存。
I've written WCF service that does both SOAP and REST with XML and JSON, and custom auth. I've pushed the custom authentication into HTTP module, which does basic auth over https. See Custom HTTP Basic Authentication for ASP.NET Web Services on .NET 3.5/VS 2008 and WCF POX, JSON and SOAP Coexist.
在您描述的设置中,Web 服务器(即 IIS)将负责加密(HTTPS)和身份验证(例如基本身份验证)。 IIS 可以使用自定义身份验证机制进行扩展(只需在 google 中搜索“IIS 模块处理程序”)。
有点奇怪的是它必须委托给 IIS 并且不是 WCF 的一部分。但这完全没有问题。
In the setup you describe, the web servier (i.e. IIS) will be responsible for encryption (HTTPS) and authentication (e.g. basic authentiction). IIS can be extended with a custom authentication mechanism (just google for "IIS module handler").
It's a bit strange that it has to be delegated to IIS and is not part of WCF. But it's no problem at all.