gpt4 book ai didi

c# - 在IIS Web服务器上使用Powershell时访问被拒绝

转载 作者:行者123 更新时间:2023-12-03 01:22:00 25 4
gpt4 key购买 nike

我有一个0ffice 365用户的密码重置网站。它在后台运行powershell命令以重置用户密码。由于某些原因,当我使用VS并在页面上运行浏览器时,它运行良好。但是,当我从实时站点运行它时,出现此错误

Processing data from remote server failed with the following error message: Access is denied. For more information, see the about_Remote_Troubleshooting Help topic. 

该页面是aspx.net,后面带有C#代码。

我曾尝试使用模仿器类,但这也不起作用。

这是我的一些代码。
 using (new Impersonator("user", "domain", "pass"))
{

PSCredential creds = new PSCredential("office365email", "password");

WSManConnectionInfo connectionInfo = new WSManConnectionInfo(
new Uri("https://server.outlook.com/PowerShell-LiveID?PSVersion=2.0"),
"http://schemas.microsoft.com/powershell/Microsoft.Exchange", creds);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;



Runspace runspace = RunspaceFactory.CreateRunspace(connectionInfo);

runspace.ApartmentState = System.Threading.ApartmentState.STA;
runspace.ThreadOptions = PSThreadOptions.UseCurrentThread;

try
{


runspace.Open();


pipeline = runspace.CreatePipeline();

Command forwardcommand = new Command("Set-Mailbox");
forwardcommand.Parameters.Add("Identity", user);
forwardcommand.Parameters.Add("Password", pass);




pipeline.Commands.Add(forwardcommand);

try
{
pipeline.Invoke();



runspace.Close();
pipeline.Stop();
return "Password Successfully Changed";



}
catch (Exception er)
{
runspace.Close();
pipeline.Stop();

return er.Message;


}
}
catch (PSRemotingTransportException eer)
{

runspace.Close();


return eer.Message;// "Server busy please try again later";
}
}

有什么想法为什么我不能从实际的网站上完成,但可以在本地主机上进行?
<authentication mode="Windows"/>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear/>
<add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider"/>
<add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
</providers>
</roleManager>
<identity impersonate="true"/>

最佳答案

这可能是“双跳”身份/安全性问题。

在本地主机上运行时,Windows身份在同一计算机上是已知的。
在Web服务器上运行时,至少还要涉及一台计算机。

相关问题包括:IIS使用什么身份来运行网页?该ID是否具有使用网络的权限?该ID是否具有在远程服务器上执行密码重置的权限?

关于c# - 在IIS Web服务器上使用Powershell时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10757441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com