2011-08-15 65 views
0

好的。我有一個訪問WCF程序的MVC2應用程序,並使用該信息填充其模型等等。我不確定我需要做的一切嗎?我的客戶端應用程序(MVC2應用程序)和我的服務器應用程序(WCF服務)中都有模擬代碼。在我的IIS 7安裝程序(在Windows Server 2008上),我禁用了匿名身份驗證,啓用了ASP.net模擬,並啓用了Windows身份驗證。我將我的流程模型池標識設置爲ApplicationPoolIdentity。我認爲這應該可以做到。但是,我不斷收到錯誤,告訴我用戶標識未通過。我想,我想知道你需要什麼來讓這種應用程序工作?你需要通過MVC網站進行Windows身份驗證通過以及WCF

回答

2

爲了您的MVC應用程序確保您的網絡配置包含以下

<authentication mode="Windows" /> 
    <authorization> 
    <deny users="?" /> 
</authorization> 

還要注意的是IIS對網站每個樹節點上的身份驗證選項,因此例如,如果您使用默認Web站點,有你在此節點下的應用程序,身份驗證選項可以在您的站點的頂級節點和節點之間有所不同。對於我的網站,我已針對默認網站節點關閉所有auth方法,然後僅在應用程序級節點上使用Windows身份驗證。確保匿名在所有節點上關閉或httpcontext.current.user對象將爲空,在我們的情況下導致我們的應用程序崩潰。

切換認證模式確實會繼承,所以在調整父節點時要小心,因爲您可能會意外更改子節點的設置。

+0

應該是其中一個綁定的身份驗證設置,是另一個身份驗證設置。原諒我的無知,我對這個有點新鮮...... :-)哦,你確實說過MVC應用和服務。我想我希望這就是你的意思,因爲我沒有在我的服務,但它是在我的MVC應用程序。 – SoftwareSavant

+0

對不起,我沒有詳細說明。上述設置將存放在您的web.config文件中,該文件存在於您的MVC應用程序的根目錄中。我猜想我們需要知道的第一件事是用戶沒有經過的地方,嘗試去第一頁的表單加載,並檢查HttpContext.Current.User以查看這個對象是否爲null。如果是這樣,你是mvc應用程序不認證。如果它與服務相關,則需要在服務上模擬客戶端。有關於如何在這裏執行此操作的相當不錯的文檔 http://msdn.microsoft.com/en-us/library/ms731090.aspx –

+0

我想我可能已經在我的測試服務器上通過遵循此建議來解決此問題。 – SoftwareSavant

相關問題