2010-12-08 33 views
0

我有一個使用SQL Express後端(始終位於本地計算機上)的winforms應用程序。 我遇到了各種用戶問題,其中用戶執行的任務在特定位置創建新數據庫,但事實證明,「NT Authority \ Network Service」在指定的位置上沒有足夠的權限。確定SQLSERVR進程是否具有對給定文件夾(C#)的寫訪問權限

我想在運行時檢查運行SQLSERVR的用戶是否可以訪問特定的文件夾。

我運行了WMI代碼來確定SQLSERVR進程的用戶/ SID。我的下一步是嘗試獲取用戶的WindowsIdentity/WindowsPrincipal,以便查詢文件訪問規則。

但是我被卡住了 - 當我擁有的是用戶/域/ SID時,如何可靠地獲得WindowsIdentity?似乎沒有一個適合這個的構造函數?

回答

1

你將不得不的PInvoke的LogonUser獲得令牌。我非常懷疑這是行得通的,這些服務帳戶是非常有特權的。

難道問問自己這是否值得麻煩。也許一個警告是可取的,但你沒有辦法解決這個問題。這將要求管理員真正解決問題。專注於從你得到的例外中獲得良好的診斷。

相關問題