我们有一个 WCF RESTful 服务在 IIS 7 上运行并运行良好。我们的用户通过来自我们的 MVC3 网站的一些调用访问它,该网站位于单独的 Web 服务器上并使用表单身份验证。
我们想让事情变得更安全一点,这样不仅任何人都可以调用服务上的方法;只有在 MVC 网站中经过身份验证的人才能成功进行这些调用。非常感谢有关如何以这种方式限制 Web 服务调用的建议。
我们有一个 WCF RESTful 服务在 IIS 7 上运行并运行良好。我们的用户通过来自我们的 MVC3 网站的一些调用访问它,该网站位于单独的 Web 服务器上并使用表单身份验证。
我们想让事情变得更安全一点,这样不仅任何人都可以调用服务上的方法;只有在 MVC 网站中经过身份验证的人才能成功进行这些调用。非常感谢有关如何以这种方式限制 Web 服务调用的建议。
您可以在 WCF 服务端启用表单身份验证,如本文所示(通过启用ASP.Net Compatibility Mode
)。确保客户端(MVC 应用程序)和服务器都使用相同的 machineKey,以便 MVC 应用程序生成的身份验证 cookie 对 WCF 服务仍然有效。然后在调用 REST 方法时,只需将实际的客户端身份验证 cookie 附加到请求中即可。
这是一些链接:
我更喜欢使用 Auth 协议而不是修改 HTTP 标头的第一种方法。