0

我有一个托管在 IIS 中的 WCF 服务。我在 asp.net mvc 中托管了另一个网站。这是一个公共网站。我想保护我的 WCF 服务,以便它不能从我的 MVC 应用程序以外的任何应用程序访问,或者我授予访问权限的应用程序。

我可以使用表单身份验证来执行此操作吗?

更新:

我已经经历了几个例子,但我找不到一个有效的例子。我不想使用 ssl。我的网络应用程序中没有登录功能。如果需要,可以实现程序登录。我所需要的只是,如果没有从我的网站调用该服务,则拒绝访问。我已经使用表单身份验证在 Web 服务中完成了这项工作。但是在这里,httpcontext 是空的。

4

1 回答 1

0

是的你可以。WCF 调用通过相同的管道,因此如果您检查特定主体(用户名或角色),您的检查将根据表单 cookie 失败/成功。

更多细节在我的博客条目

http://netpl.blogspot.com/2010/04/aspnet-forms-authentication-sharing-for.html

我在这里展示了如何在 Web 应用程序和调用 WCF 服务的托管 silverlight 应用程序之间共享表单身份。

对于另一种类型的客户端应用程序,您在客户端获取 cookie 值的方式可能会有所不同。Silverlight 只是从运行它的 Web 应用程序继承 cookie。

假设您的客户端是一个控制台应用程序,您甚至可以从 WCF 服务公开一个不受保护的方法,该方法接受登录名+密码并将 cookie 返回给客户端。这样,控制台应用程序将首先调用这个不受保护的方法来登录用户,然后使用返回的 cookie 调用其他受表单身份验证保护的 WCF 服务。

于 2013-07-01T12:25:43.293 回答