2012-02-24 73 views
1

在我的登錄頁面中,我模擬登錄的用戶。用戶在AD中有一個帳戶,並且在我的連接字符串中有Integrated Security = true。這樣,用戶應該有權訪問數據庫。ASP.NET模擬持續多久?

我冒充使用下面的代碼在登錄頁面

...
tempWindowsIdentity = New WindowsIdentity(tokenDuplicate)
impersonationContext = tempWindowsIdentity.Impersonate()

請問這種模仿持續到用戶會話結束?該應用程序會調用其他幾個項目DLL,它們也會調用數據庫,以及另一個服務器上的Web服務碰到同一個數據庫。

如果不是,我需要多長時間打電話進行假冒?許多數據庫調用始終進行。

換句話說,
我需要匿名訪問窗體身份驗證激活,這樣我可以告訴我的登錄屏幕,但我也需要用戶的AD身份被假冒(最好只設置一次)在我的應用

回答

0

http://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx

根據以上內容,模擬會隨着線程一起進行。由於asp.net爲每個請求使用不同的線程,因此您必須經常重新模擬。

+0

-1:這是.NET 1.1的內容。除非有關.NET 1.1的問題,否則請不要發佈它。 – 2012-02-25 23:11:56

+1

您也可以閱讀http://msdn.microsoft.com/en-us/library/ff647404.aspx。 @JohnSaunders,有時微軟忘了爲新的.NET版本更新優秀的文章。因此,由此原因下調是不公平的。 – 2012-02-26 01:18:30

+0

@LexLi:花了我五分鐘才找到http://msdn.microsoft.com/en-us/library/xh507fc5.aspx。 – 2012-02-26 01:55:31