Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从ASP.NET站点创建Windows帐户并设置文件权限_C#_Asp.net_.net_File Permissions - Fatal编程技术网

C# 从ASP.NET站点创建Windows帐户并设置文件权限

C# 从ASP.NET站点创建Windows帐户并设置文件权限,c#,asp.net,.net,file-permissions,C#,Asp.net,.net,File Permissions,我正在构建一个ASP.NET应用程序,它将在服务器上创建Windows帐户和组,并为这些帐户设置文件/文件夹权限 我如何做到这一点 我曾考虑过使用CACLS.exe,但我有一种感觉,那最终会让我陷入其他问题。在.NET framework中还有其他选择吗?我实现类似目标的一种方式。这就是某些操作或流程需要管理权限的地方,而您试图通过ASP.NET实现这一点的目的是构建一个WCF服务应用程序(理想情况下是作为自托管服务),并以管理员身份运行它 然后从ASP.NET应用程序调用服务中的方法,它就可以

我正在构建一个ASP.NET应用程序,它将在服务器上创建Windows帐户和组,并为这些帐户设置文件/文件夹权限

我如何做到这一点


我曾考虑过使用CACLS.exe,但我有一种感觉,那最终会让我陷入其他问题。在.NET framework中还有其他选择吗?

我实现类似目标的一种方式。这就是某些操作或流程需要管理权限的地方,而您试图通过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(); 
    }
  }
类程序
{
静态void Main(字符串[]参数)
{
var webServiceHhost=新的webServiceHhost(typeof(AppCmdService),新的Uri(“http://localhost:7654"));
ServiceEndpoint ep=webServiceHhost.AddServiceEndpoint(typeof(AppCmdService),新的WebHttpBinding(),“”);
var serviceDebugBehavior=webServiceHhost.Description.Behaviors.Find();
serviceDebugBehavior.HttpHelpPageEnabled=false;
webServiceHhost.Open();
Console.WriteLine(“服务正在运行”);
Console.WriteLine(“按enter键退出”);
Console.ReadLine();
webServiceHhost.Close();
}
}

上面代码列表中的类
AppCmdService
是我的WCF服务类

,它似乎就是我要寻找的。我将在一个WCF服务中很好地总结这一点(谢谢),并从我的应用程序中调用它。

这是一个非常好的主意,我肯定会这么做。但是CACLS是我创建帐户和设置权限的唯一选择吗?@Jakob,恐怕我帮不了你。我已经用过很多次了。最近,我们尝试使用appcmd执行一些操作,appcmd是配置IIS的命令行工具,但它需要管理权限。这样做很有魅力。我已经编辑了我的答案,以包含一些自托管WCF服务的示例代码