2012-10-25 36 views
1

我有需要與在應用程序託管和WCF服務的例外Windows身份驗證ASP.NET網站要求匿名身份驗證:匿名身份驗證在IIS中在另外的窗口authenicated網站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 Authenitcated站點其餘部分的例外)。

我已經能夠做到這一點只有創造的途徑(http://MyHost/MyWebsite/爲MyService/)留空,並啓用匿名身份驗證在IIS目錄的名稱相匹配的文件夾。

是否有更好的方法允許匿名身份驗證我的服務路由在IIS中不涉及創建文件夾只作爲IIS配置的佔位符存在?

附加說明:我發現在配置IIS中的空文件夾以允許匿名訪問後,我可以刪除物理文件夾,並且服務路由的匿名身份驗證仍然得到遵守。

回答

0

你真的不需要在你的網站上有任何空的文件夾。您可以在IIS中將應用程序添加到您的網站,並在此應用程序上設置匿名身份驗證。其他方法是使用Windows身份驗證。您的服務需要匿名身份驗證的原因是什麼?

+0

我期待在IIS中只有一個應用程序。該應用程序需要Windows身份驗證,但服務除外。該服務需要匿名身份驗證,因爲它需要由不支持Windows身份驗證的客戶端訪問。 –

+0

在1個網站內有多個應用程序有什麼問題? –