我有2個ASP.NET MVC 3應用程序。我通過web.config使用模擬來允許我查詢Active Directory以獲取用戶的詳細信息。該應用程序使用Windows身份驗證,並且不允許匿名用戶。一個應用程序是用戶執行任務的主要應用程序。另一個允許用戶在應用程序一中設置其他用戶的樣子。模擬,活動目錄和「用戶沒有權限xxxx」問題
測試用戶越來越以下錯誤:
SQL1092N "<DOMAIN ID>" does not have the authority to perform the requested command.
發生這種情況後,我送從我的主要應用到次級一個Web請求。爲了得到這個工作,我不得不讓這個請求模擬真正的用戶,而不是應用程序用於模擬的身份。這實際上是我發佈並回答的一個SO問題。這是在這裏:How do I call an MVC Action via a WebRequest and validate the request through Active Directory?
在代碼的最後,我呼籲:
impersonationContext.Undo();
正是這種Web請求發生後,該主應用程序試圖訪問數據庫,現在看來,上面的調用已經取消了應用程序的模擬,所以用戶嘗試做任何打開數據庫連接的操作都會失敗。至少,這是我的工作理論,經過一天頭一擊之後。
我的問題是,我怎樣才能讓應用程序模仿回到web.config中的用戶呢?或者,在提出我的網絡請求時,是否有辦法確保模擬上下文僅適用於該請求?
所有這一切的關鍵在於第二個應用程序有它自己的sql server數據庫。主應用程序使用DB2。我想寫一次數據庫訪問代碼,但在兩個應用程序中都使用它。目前這就是我所做的,但我依靠Web請求獲取數據的方法可能不是最好的方法。
我接受任何想法,意見,建議和/或批評。我應該如何處理這個問題?
有什麼我需要澄清的?問題的方式是否妨礙了這種方式?歡迎反饋。我不介意在可能的情況下進行重新說明或澄清。 – jason