Login-AzureRmAccount命令无法在托管的c#应用程序中运行

时间:2016-08-08 07:22:55

标签: c# powershell azure iis

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

1 个答案:

答案 0 :(得分:0)

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

执行此操作的正确方法是根据本答案末尾发布的代码使用Credential对象。您需要创建自己的机制(表单)来捕获用户名和密码。

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

使用Credential对象登录Azure:

CODE