为Web应用程序使用WCF身份验证服务

时间:2010-04-25 23:48:58

标签: wcf web-applications asp.net-membership

我正在使用我使用Web应用程序设置的WCF身份验证服务。我已经成功设置并测试了AuthenticationService和RolesService。 Web应用程序可以通过WCF服务成功调用ValidateUser和GetRolesForCurrentUser等方法。

我想将WCF身份验证服务与我的web.config和site.map集成。我是否需要编写自定义提供程序,或者是否可以通过某种方式修改Web应用程序的web.config以使用WCF身份验证服务作为其成员资格提供程序?

这样我可以根据WCF身份验证服务设置哪些角色可以访问哪些目录。

2 个答案:

答案 0 :(得分:2)

Application Services并非旨在替代提供程序堆栈。

它们旨在扩充和启用除.aspx以外的上下文。

在大多数情况下,您可以简单地使用默认提供程序堆栈(Membership / Roles / Profiles)。

您只需传递在服务电话上下文中通过应用服务呼叫“登录”时获得的Cookie。

有关将Cookie添加到WCF呼叫的更多信息,请参阅here

如果您使用AJAX来调用服务,则无需执行任何操作,只需通过ajax进行身份验证,然后通过ajax进行调用。

答案 1 :(得分:1)

Skys的回答似乎没有回答这个问题?

在我看来,真的需要从ASP.NET应用程序调用WCF AuthenticationService吗?

考虑一个三层应用程序,其中所有数据库访问都要求由应用程序层执行。有一个包含业务数据和成员资格数据的数据库(数据层)。

我编写了一个三层实现,其中表示层上的自定义MembershipProvider调用应用程序层上的AuthenticationService,然后运行我的自定义身份验证例程。 我可以很容易地创建一个自定义WCF服务(例如,不是AutheticationService)来进行此身份验证,但我尝试尽可能使用.NET对象。 如果我可以告诉ASP.NET使用AutheticationService而不需要自定义成员资格提供程序,但我不认为这是可能的,那会很好吗?