簡體   English   中英

ASP.NET PowerShell模擬

[英]ASP.NET PowerShell Impersonation

我開發了一個ASP.NET MVC Web應用程序來執行PowerShell腳本。

我正在使用VS Web服務器,可以很好地執行腳本。

但是,要求是用戶能夠針對AD執行腳本以執行不允許其自己的用戶帳戶執行的操作。

因此,我在創建PowerShell運行空間之前使用模擬來切換標識:

            Runspace runspace = RunspaceFactory.CreateRunspace(config);

        var currentuser = WindowsIdentity.GetCurrent().Name;

        if (runspace.RunspaceStateInfo.State == RunspaceState.BeforeOpen) {
            runspace.Open();
        }

我已經使用域管理員帳戶進行了測試,並且在調用runspace.Open()時出現以下異常:

安全異常說明:應用程序嘗試執行安全策略不允許的操作。 要授予此應用程序所需的權限,請與您的系統管理員聯系或在配置文件中更改應用程序的信任級別。 異常詳細信息:System.Security.SecurityException:不允許請求的注冊表訪問。

Web應用程序完全信任,我已明確將我用於模擬的帳戶添加到計算機的本地管理員組(即使域管理員組已經存在)。

我正在使用advapi32.dll LogonUser調用以與此帖相似的方式執行模擬( http://blogs.msdn.com/webdav_101/archive/2008/09/25/howto-calling-exchange-powershell-from -an-impersonated-thead.aspx

任何幫助表示欣賞,因為這是目前的一個顯示阻止。

謝謝Ben

這篇博文是否有幫助? 直接來自PowerShell開發人員。 本質上,PowerShell啟動一個新線程來運行管道,並且由於.NET2.0不允許線程使用來自調用線程的模擬,因此它失敗了。

http://blogs.msdn.com/powershell/archive/2007/09/10/impersonation-and-hosting-powershell.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM