1

アプリケーションでホストされ、匿名認証を必要とする WCF サービスを除いて、Windows 認証を必要とする ASP.NET Web サイトがあります。

(たとえば: 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 認証済みサイトの例外として)。

http://MyHost/MyWebsite/ルートの名前 ( MyService )と一致するフォルダーを作成し、/それを空のままにし、IIS のディレクトリへの匿名認証を有効にすることによってのみ、これを達成できました。

IIS 構成のプレース ホルダーとして存在するためだけにフォルダーを作成する必要がない、IIS のサービス ルートへの匿名認証を許可するより良い方法はありますか?

追加メモ: IIS で空のフォルダーを構成して匿名アクセスを許可した後、物理フォルダーを削除しても、サービス ルートの匿名認証は引き続き有効であることがわかりました。

4

1 に答える 1

0

Web サイトに空のフォルダーは必要ありません。IIS の Web サイトにアプリケーションを追加し、このアプリケーションに匿名認証を設定するだけです。他のアプローチは、Windows 認証を使用することです。あなたのサービスが匿名認証を必要とする理由は何ですか?

于 2012-10-26T07:09:04.030 に答える