一些細節我想訪問網絡上的共享!
- 我與VisualWebGUI工作,所以這個程序是像ASP.NET,它部署在IIS 7(用於測試)
- 對於我的「站點」,匿名身份驗證設置爲特定用戶(DomainName \ DomainUser)。在我的web.config中,我有模擬。這就是我如何讓我的應用首先訪問共享。
的問題
有一個在這裏我們使用Thread類的應用程序的一個點,類似的東西:
Thread myThread = new Thread(new ThreadStart(objInstance.PublicMethod));
myThread.Start();
我所注意到的是,我可以寫我的日誌(共享上的文本文件),遍及我的代碼中的任何地方,除了在我啓動的線程中。我加了一些調試輸出和我看到的用戶是:
- 多數民衆贊成拉開序幕螺紋:NT AUTHORITY \ NETWORK SERVICE
- 放眼天下,我的代碼:域名\ DomainUser(在我的IIS設置中所述)
OK,出於某種原因,線程獲取不同的用戶(網絡服務)。精細。但是,我的共享(和實際的日誌文件)被賦予了NETWORK SERVICE用戶的'完全控制'(這個共享位於與我的應用程序運行的服務器不同的服務器上)。
如果NETWORK SERVICE有權這個文件夾,爲什麼還會訪問被拒絕?或者是否有辦法讓我啓動的線程擁有與該進程相同的用戶?
我認爲在實際啓動線程之前設置CurrentPrincipal屬性會更直接;這幾乎是原始問題所要求的。基本上newThread.CurrentPrincipal = currentThread.CurrentPrincipal。 – Luke 2010-05-03 20:33:42
@Luke,不幸的是你不能在Thread實例上設置CurrentPrincipal,CurrentPrincipal是一個靜態的。 – 2010-05-03 20:44:51
感謝您的回覆。我玩過我的代碼(使用你的例子中的代碼),現在一切都很好。綠色複選標記爲你! – JustLooking 2010-05-03 21:20:30