Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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# 使用Web API调用跨域的安全性_C#_Asp.net Web Api - Fatal编程技术网

C# 使用Web API调用跨域的安全性

C# 使用Web API调用跨域的安全性,c#,asp.net-web-api,C#,Asp.net Web Api,我有一个Web API应用程序,可以调用我们网络上的100多个服务器。其中一些服务器位于域1中,一些位于域2中,另一些位于域3中。例如:serverA.domain1或serverB.domain2 这是在用户选择的服务器上获取服务的代码: var services = ServiceController.GetServices(serverNameWithSuffix) .Where(x => x.ServiceName.StartsWith(serviceStartsWith)

我有一个Web API应用程序,可以调用我们网络上的100多个服务器。其中一些服务器位于域1中,一些位于域2中,另一些位于域3中。例如:serverA.domain1或serverB.domain2

这是在用户选择的服务器上获取服务的代码:

var services = ServiceController.GetServices(serverNameWithSuffix)
    .Where(x => x.ServiceName.StartsWith(serviceStartsWith))
    .OrderBy(x => x.ServiceName);
当Web API应用程序作为默认ApplicationPoolIdentity运行时,存在权限问题。因此,我将应用程序池更改为在服务帐户下运行。然后,该应用程序适用于一个域中的所有内容,但不适用于其他两个域。如果我以我的用户身份运行应用程序池,一切正常


这种东西的标准是什么?我是否需要创建一个可以访问所有域上所有服务器的服务帐户,然后使该帐户成为每台服务器上的管理员?

我不是系统管理员,但我的系统管理员允许我使用IIS应用程序池运行的服务帐户来执行此操作。我相信问题可能是您的服务帐户的团体范围。将其更改为全局或通用可能会解决您的问题。很可能您的个人用户帐户已经是具有全局或通用范围的安全组的一部分,这就解释了为什么在您的凭据下运行它


我不是系统管理员,但我的系统管理员允许我使用运行IIS应用程序池的服务帐户执行此操作。我相信问题可能是您的服务帐户的团体范围。将其更改为全局或通用可能会解决您的问题。很可能您的个人用户帐户已经是具有全局或通用范围的安全组的一部分,这就解释了为什么在您的凭据下运行它


感谢那些提供了一些指导的人,但我找到了我需要做的事情。在我检测到服务器所在的域后,我将在适当的模拟帐户下运行代码。感谢提供了一些指导的人员,但我找到了我需要做的事情。在我检测到服务器所在的域后,我将在适当的模拟帐户下运行代码。感谢提供了一些指导的人员,但我找到了我需要做的事情。检测到服务器所在的域后,我将在相应的模拟帐户下运行代码。