1

想知道如何高效、安全地执行以下操作,并且不会因为过于复杂而让我们费尽心思:我们有一个使用表单身份验证的 ASP.Net 站点,并希望实现一些 WCF 静态 Web 服务可以从第一个站点调用,前提是调用它们的用户已经过身份验证。

我们希望在与 ASP.Net 站点不同的网站中托管 WCF RESTful 服务。两个站点将位于同一个域中(例如 my-domain.com)。

我一直在阅读 WCF 中的各种绑定,但不确定 webHttpBindings 是否适合这里(它们对 REST 最友好,但它们可以容纳经过表单身份验证的用户吗?)

我正在寻找与代码一样多的建议和参考,但我很想知道从哪里开始以及要寻找什么,什么是可能的,什么不是。

每次我阅读有关 WCF 身份验证的信息时,似乎都不可避免地会陷入有关 WS-security 和 X509 证书的讨论中,而且我不知道我在做什么需要所有这些?我真正想要构建的是一系列仅响应表单身份验证用户的 WCF 宁静服务。如果不深入研究 WS-Security 和 X509 就不可能做到这一点,那么就这样吧,但我希望它尽可能简单。

注意:大约一个月前我问了一个类似的问题,但决定使用表单身份验证。

4

2 回答 2

0

如果您不从浏览器调用 WCF 服务,那么您甚至不需要保护它们。只需将它们从您的 ASPX 代码调用到托管 WCF 的非公共站点。或者在服务器到服务器模式下使用 X509 证书。

如果您确实打算从浏览器调用它们,那么事情会变得更加复杂。在这种情况下,您可能想要放弃 WCF 并使用 MVC 4 beta 版本中包含的 Web API 来构建您的 REST 服务。

http://www.asp.net/web-api

于 2012-06-06T18:05:03.080 回答
0

让您的 javascript 从后面的代码生成。如果 Page.User.IsAuthenticated,则呈现 ajax 脚本。如果不是,则呈现 javascript 以提醒用户他们需要登录。如果您不希望用户从浏览器源中删除 javascript 并稍后运行它,当他们未通过身份验证时,您将需要生成一个基于会话 ID 的令牌,可以在站点和服务之间传递。

于 2012-06-21T13:26:08.437 回答