繁体   English   中英

Login-AzureRmAccount命令在托管的C#应用​​程序中不起作用

[英]Login-AzureRmAccount command not working from hosted c# application

我正在使用Powershell脚本登录到Azure,为此我编写了简单的命令“ Login-AzureRmAccount”,并在单击按钮时将该脚本调用为C#代码。 它在本地可以正常运行,但是当我将此页面托管在服务器上时,身份验证弹出窗口没有打开,并且我收到错误消息,即“当应用程序不在UserInteractive模式下运行时显示模式对话框或表单是无效操作。请指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知”

由于您的代码正在服务器上运行,因此弹出窗口将尝试在本地系统(服务器)上生成,这显然是不可能的,因为您尚未登录。

正确的方法是按照此答案末尾发布的代码使用Credential对象。 您将需要创建自己的机制(窗体)来捕获用户名和密码。

不幸的是,在发布时,Microsoft ID不支持非交互式流(您要尝试执行的操作)。 您将需要在客户端计算机上运行脚本,登录到服务器或使用适当的凭据设置Azure AD帐户。

使用凭据对象登录到Azure:

#Set up a PSCredential:
$yourPassword = ConvertTo-SecureString "<Your Password>" -AsPlainText –Force
$yourCredential = 
    New-Object -TypeName pscredential –ArgumentList "<Your UserName>", $yourPassword

# Then use that credential to log in to your Azure account 
Login-AzureRmAccount -Credential $yourCredential 
      -ServicePrincipal –TenantId <Your TenantId>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM