代码之家  ›  专栏  ›  技术社区  ›  Nelson Rothermel

WCF和ASP.NET成员资格提供程序

  •  0
  • Nelson Rothermel  · 技术社区  · 16 年前

    我知道,要让WCF与成员资格提供程序一起工作,您必须显式地配置它:(例如 http://www.codewrecks.com/blog/index.php/2009/09/08/use-aspnet-membership-provider-with-a-wcf-svc-service/ )

    但是,如果已经有ASP.NET站点在使用它,您不能通过执行以下操作来阻止匿名访问该服务吗?

      <location path="PathToWCFService">
        <system.web>
          <authorization>
            <deny users"?" />
            <allow users="*" />
          </authorization>
        </system.web>
      </location>
    

    假设这是可行的,那么我想WCF将无法访问成员信息?这可能是个坏主意的其他原因吗?谢谢!

    编辑: 对于不需要维护证书的成员资格提供程序使用WCF的任何其他方法?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Sky Sanders    16 年前

    好吧,我通常很乐意听从马克的意见,但在这种情况下,我认为他的意见可能并不完全准确。

    我认为他忽略的是,在ASP.NET中托管服务与自托管完全不同。

    在ASP.NET网站中托管服务时,主机工厂 由ASP.NET管理,并通过访问由ASP.NET提供服务的.svc端点来启动。

    因此,在参与和访问服务的ASP.NET上下文时 选择加入,ASP.NET当然会处理请求。

    因此,是的,您可以使用ASP.NET授权保护任何.svc端点。

    因此,您可以保护它不受未经身份验证的访问。现在怎么办?如何对客户机进行身份验证以使其可以访问您的服务?

    这就是您提供的将成员身份/身份验证与服务一起使用的链接。

    因此,在您的问题中,您描述了使用成员资格提供程序堆栈保护ASP.NET承载的WCF服务的两个相互作用的方面,但可能将它们视为/或。

    现在,我可能错了,但这就是我如何理解它,以及我过去是如何实现它的。

    祝你好运。

    是的,有一些方法可以保护具有成员资格的服务,这些方法不涉及证书,但它们通常对它们有一点味道,和/或需要basichtp或webhttp绑定。

    如果你愿意的话,我很乐意和你一起探讨这个问题。