WCF& ASP.NET成员提供者

时间:2010-07-21 17:11:02

标签: .net wcf asp.net-membership

我知道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 个答案:

答案 0 :(得分:1)

好的,我通常很乐意推迟到marc_s,但在这种情况下,我认为他的评论可能并不完全准确。

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

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

因此,虽然参与和访问服务的ASP.NET上下文是选择加入,但ASP.NET肯定会处理请求。

所以,是的,您可以在显示时使用ASP.NET授权保护任何.svc端点。

所以你要防范未经身份验证的访问。现在怎么办?如何验证客户端以便它可以访问您的服务?

这是您提供的使用会员/身份验证与服务的链接。

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

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

祝你好运。

是的,有一些方法可以保护一个不含证书的成员资格的服务,但它们通常对它们有点嗅觉和/或需要BasicHttp或WebHttp绑定。

如果您愿意,我很乐意与您探讨。