我有建(由承包商)一個相當複雜的Web應用程序使用集成身份驗證。作爲認證過程的一部分,使用GetNetworkID()
功能,看起來像這樣:ASP.NET認證故障
private string GetNetworkID()
{
return HttpContext.Current.User.Identity.Name.Split(new char[] { '\\' })[1];
}
當我在我的開發運行此,該HttpContext.Current.User.Identity.Name
值 的MyNetwork \\ myUserID,因此上述功能可按回報我的用戶ID,如預期的那樣,並且認證過程工作得很好。
但是,當我在我的Web服務器上運行,我得到一個指數由return語句在GetNetworkID()
函數拋出的陣列誤差的範圍之外。
我有點失去了對如何解決這個問題以及如何找出如果它是一個IIS配置問題(我的Web服務器是Windows Server 2008的機器上運行IIS 7),或別的東西。
如果我硬編碼我的用戶ID作爲GetNetworkID()
函數的返回值,它工作在網絡服務器上,但我沒有關於如何在Web服務器上調試,以確定哪些HttpContext.Current.User.Identity.Name
任何偉大的想法返回值是導致數組索引錯誤。
有什麼建議嗎?
這是不是可以調試或登錄你的機器上如果,。?例如HttpContex t.Current.User.Identity.Name是一些意想不到的東西,比如ASPNET,那麼它可能是你盒子上的IIS配置問題。 – 2009-09-09 22:59:35
感謝大衛 - 就像我說的,它可以在我的機器上運行(並且我使用VS和Cassini,所以我沒有任何IIS配置可以做)。當然,我在服務器上安裝了IIS,但它具有最通用的開箱即用設置,並且我嘗試在該端調整身份驗證的操作不成功。 – theog 2009-09-09 23:06:53
編輯:我應該提到,我已經嘗試了Response.Write方法來解決許多不同的問題。這有點令人費解,因爲認證代碼中涉及其他一些步驟,但它看起來像是返回我的名字(「Joe Blow」)而不是我的用戶ID。所以,是的,也許我只是在那裏回答我自己的問題......讓我對此做一點工作。 – theog 2009-09-09 23:10:20