我正在使用 powershell 脚本登录到 azure,为此我编写了简单的命令“Login-AzureRmAccount”,并在单击按钮时将该脚本调用到 C# 代码中。它在本地工作正常,但是当我在服务器上托管此页面时,身份验证弹出窗口未打开,并且我收到错误消息,即“当应用程序未在 UserInteractive 模式下运行时显示模式对话框或表单不是有效的操作。指定ServiceNotification 或 DefaultDesktopOnly 样式显示来自服务应用程序的通知”
由于您的代码在服务器上运行,因此弹出窗口将尝试在本地系统(服务器)上生成,这显然是不可能的,因为您尚未登录。
执行此操作的正确方法是根据本答案末尾发布的代码使用 Credential 对象。您将需要创建自己的机制(表单)来捕获用户名和密码。
不幸的是,在发布时,Microsoft ID 不支持非交互式流程(您正在尝试执行的操作)。您需要在客户端计算机上运行脚本、登录服务器或使用适当的凭据设置 Azure AD 帐户。
使用 Credential 对象登录 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)