【问题标题】:Using WCF authentication service for web application为 Web 应用程序使用 WCF 身份验证服务
【发布时间】:2011-02-12 05:13:26
【问题描述】:

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

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

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

【问题讨论】:

  • 我假设您的意思是 Windows Communication Foundation,而不是旧的 Windows Foundation 类(与 ASP.NET 无关)。

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


【解决方案1】:

应用程序服务并非旨在替代提供程序堆栈。

它们旨在增强和启用来自 .aspx 以外的上下文的使用。

在大多数情况下,您可以简单地使用默认的提供程序堆栈(成员/角色/配置文件)。

您只需在服务调用上下文中通过应用服务调用“登录”时获得的 cookie。

有关将 cookie 添加到 WCF 调用的更多信息,请参阅 here

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

【讨论】:

    【解决方案2】:

    Skys answer 似乎没有回答问题?

    在我看来确实需要从 ASP.NET 应用程序调用 WCF AuthenticationService?

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

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

    【讨论】:

      猜你喜欢
      • 2012-07-27
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多