2011-03-02 73 views
1

我正在構建一個ASP.NET應用程序,它將在服務器上創建Windows帳戶和組,併爲這些帳戶設置文件/文件夾權限。從ASP.NET站點創建Windows帳戶和設置文件權限

我該如何做到這一點?

我已經考慮過對CACLS.exe進行脫殼了,但我感覺最終會讓我陷入其他問題。 .NET框架中是否還有其他選項?

回答

2

我已經實現了類似的一種方法。這就是某些操作或進程需要管理權限的地方,而你正在嘗試通過ASP.NET來做到這一點,就是構建一個WCF服務應用程序(理想情況下是一個自託管服務)並使其以管理員身份運行。

然後從ASP.NET應用程序中調用服務中的方法並且它可以工作。

編輯

這裏是使一個控制檯應用程序中的WCF自託管應用

class Program 
    { 
    static void Main(string[] args) 
    { 
     var webServiceHhost = new WebServiceHost(typeof(AppCmdService), new Uri("http://localhost:7654")); 
     ServiceEndpoint ep = webServiceHhost.AddServiceEndpoint(typeof(AppCmdService), new WebHttpBinding(), ""); 
     var serviceDebugBehavior = webServiceHhost.Description.Behaviors.Find<ServiceDebugBehavior>(); 
     serviceDebugBehavior.HttpHelpPageEnabled = false; 
     webServiceHhost.Open(); 
     Console.WriteLine("Service is running"); 
     Console.WriteLine("Press enter to quit "); 
     Console.ReadLine(); 
     webServiceHhost.Close(); 
    } 
    } 

在上面的代碼中列出該類AppCmdService代碼是我的WCF服務類

+0

這是一個非常好的主意,我肯定會跟那個一起去的。但是,CACLS是我創建賬戶和設置權限的唯一選擇嗎? – 2011-03-02 06:51:28

+0

@Jakob,恐怕我無法幫到你。我已經使用過這種技術很多次了。最近要使用appcmd執行一些操作,這是用於配置IIS的命令行工具,但它需要管理權限。這樣做就像魅力一樣。我編輯了我的答案,以包含自託管的WCF服務的一些示例代碼 – 2011-03-02 07:00:02