如何:启用 WCF 身份验证服务
更新:2007 年 11 月
本主题演示如何在 Web 服务器上配置 ASP.NET 身份验证服务,以便客户端可将其用作 Windows Communication Foundation (WCF) 服务。此外,本主题还演示如何配置 ASP.NET Forms 身份验证。
有关如何配置 ASP.NET 成员资格的更多信息,请参见配置 ASP.NET 应用程序以使用成员资格。
启用身份验证服务
如果还没有 ASP.NET Web 应用程序,请创建一个。
向包含以下指令来引用 AuthenticationService 类的网站中添加一个服务文件 (.svc),如下面的示例所示:
<%@ ServiceHost Language="VB" Service="System.Web.ApplicationServices.AuthenticationService" Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %> <%@ ServiceHost Language="C#" Service="System.Web.ApplicationServices.AuthenticationService" Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
在 Web.config 文件中进行以下配置设置以配置服务及要求使用 SSL:
在 authenticationService 元素中启用身份验证服务。
在 services 元素中定义终结点协定,在 behaviors 元素中定义服务行为。在终结点协定中包括如以下示例所示的 bindingNamespace 属性,以防止在某些代理生成工具中出现异常。有关 WCF 终结点的更多信息,请参见 Windows Communication Foundation Endpoints(Windows Communication Foundation 终结点)。
配置 serviceHostingEnvironment 元素以获得 ASP.NET 兼容性。有关承载 WCF 服务的更多信息,请参见 WCF Services and ASP.NET(WCF 服务和 ASP.NET)。
在需要 SSL 的 bindings 元素中创建绑定。有关 WCF 中传输安全性的更多信息,请参见 Transport Security(传输安全性)。
下面的示例演示 Web.config 文件中的 system.serviceModel 元素,该元素演示了上面列出的配置设置。
<system.web.extensions> <scripting> <webServices> <authenticationService enabled="true" requireSSL = "true"/> </webServices> </scripting> </system.web.extensions> <system.serviceModel> <services> <service name="System.Web.ApplicationServices.AuthenticationService" behaviorConfiguration="AuthenticationServiceTypeBehaviors"> <endpoint contract= "System.Web.ApplicationServices.AuthenticationService" binding="basicHttpBinding" bindingConfiguration="userHttps" bindingNamespace="https://asp.net/ApplicationServices/v200"/> </service> </services> <bindings> <basicHttpBinding> <binding name="userHttps"> <security mode="Transport" /> </binding> </basicHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="AuthenticationServiceTypeBehaviors"> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> </system.serviceModel>
配置 Forms 身份验证
在 Web.config 文件中,配置 Web 应用程序以使用 Forms 身份验证。
下面的示例演示 Web.config 文件中的 authentication 元素,该元素已配置为使用 Forms 身份验证。
<authentication mode="Forms"> <forms cookieless="UseCookies" /> </authentication>
身份验证服务需要 cookie。因此,在 authentication 元素中,应将 cookieless 属性设置为“UseCookies”。有关更多信息,请参见 ASP.NET Forms 身份验证概述。
安全性
如果要传递敏感的用户数据(如身份验证凭据),请始终通过安全套接字层(SSL,通过使用 HTTPS 协议)来访问身份验证服务。有关如何设置 SSL 的信息,请参见 Configuring Secure Sockets Layer (IIS 6.0 Operations Guide)(配置安全套接字层(IIS 6.0 操作指南))。
请参见
任务
概念
Windows Communication Foundation 身份验证服务概述