我們有一個Web應用程序,將文件複製到我們的域名(OurDomain)中的遠程服務器。用戶使用另一個域登錄到其筆記本電腦,然後使用OurDomain登錄到Web應用程序時,會出現以下問題。使用OurDomain \ User登錄筆記本電腦和Web應用程序的用戶不存在此問題。使用ASP.Net模擬瓦特/ Windows身份驗證
我們有兩個web表單:
首屆網絡表格檢索使用System.Security.Principal.WindowsIdentity.GetCurrent()
用戶的ID,然後用這個用戶ID發送電子郵件。只有當我們將Windows Authentication
設置爲Enabled
和ASP.Net Impersonation
也設置爲Enabled
時,此代碼纔會檢索用戶的ID。如果ASP.Net Impersonation
設置爲Disabled
,則用戶將是Network Service
。所以我將這兩個設置爲啓用,這裏的一切都很好。
第二個webform將一些文件複製到遠程服務器,同樣在域OurDomain。隨着Windows Authentication
設置爲Enabled
和ASP.Net Impersonation
設置爲Disabled
,然後Network Service
用於將文件複製到遠程服務器,並且正確地複製。另一方面,如果ASP.Net Impersonation
設置爲Enabled
,它似乎繞過Network Service
,甚至OurDomain \用戶並試圖複製顯然,用於登錄到筆記本電腦(另一個域)的憑據。該文件不復制,我得到錯誤訪問被拒絕
我發現的唯一的解決辦法是OurDomain \用戶添加到文件夾的路徑,這真的不是什麼大不了的事,但我想知道爲什麼會發生這種情況。
謝謝。
我不能創建/修改或以任何方式改變的文件OurDomain中的用戶。 – vmgmail
如果您無法擁有網絡服務以外的應用程序池用戶,則可能需要模擬。即,asp.net應用程序將執行,就好像登錄瀏覽器的用戶在Web服務器中執行程序一樣。在這種情況下,如果登錄瀏覽器的用戶對遠程文件夾具有權限,則文件副本將起作用。 –