【问题标题】:Anonymous Authentication in IIS to WCF service routes in an otherwise windows authenicated websiteIIS 中的匿名身份验证到 Windows 身份验证网站中的 WCF 服务路由
【发布时间】:2012-10-15 20:42:35
【问题描述】:

我有一个 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 Authentcated 站点的其余部分的例外)。

我只能通过创建一个与路由名称匹配的文件夹 (http://MyHost/MyWebsite/MyService/) 将其留空,并启用对IIS。

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

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

【问题讨论】:

    标签: c# wcf iis routes wcf-security


    【解决方案1】:

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

    【讨论】:

    • 我希望在 IIS 中只有一个应用程序。应用程序需要 Windows 身份验证,但服务除外。该服务需要匿名身份验证,因为它需要由不支持 Windows 身份验证的客户端访问。
    • 在一个网站中有多个应用程序有什么问题?
    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多