1

我有一个 ASP.NET 网站,它需要 Windows 身份验证,但托管在应用程序中并需要匿名身份验证的 WCF 服务除外:

(比方说FooService.svc:)

[ServiceContract]
[AspNetCompatibilityRequirements( RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed )]
[ServiceBehavior( InstanceContextMode = InstanceContextMode.PerCall, IncludeExceptionDetailInFaults = true)]
public partial class FooService
{
    [WebGet( UriTemplate = "foo", ResponseFormat = WebMessageFormat.Json )]
    public string GetFoo()
    {
        return "Foo";
    }
}

我已经在以下位置注册了我的路线Global.asax

routes.Add( new ServiceRoute( "MyService", new WebServiceHostFactory(), typeof( FooService ) ) );

我的问题是使此服务及其所有路由都允许匿名身份验证(作为 Windows Authenticated 站点的其余部分的例外)。

我只能通过创建一个与路由名称(http://MyHost/MyWebsite/MyService/)匹配的文件夹来实现这一点,将其留空,并对 IIS 中的目录启用匿名身份验证。

是否有更好的方法允许对 IIS 中的服务路由进行匿名身份验证,而不涉及创建仅作为 IIS 配置的占位符存在的文件夹?

附加说明:我发现在IIS中配置空文件夹允许匿名访问后,我可以删除物理文件夹,并且仍然尊重服务路由的匿名身份验证。

4

1 回答 1

0

您的网站上真的不需要任何空文件夹。您可以在 IIS 中将应用程序添加到您的网站并在此应用程序上设置匿名身份验证。其他方法是使用 windows 身份验证。您的服务需要匿名身份验证的原因是什么?

于 2012-10-26T07:09:04.030 回答