我正在构建一个使用Azure Active Directory身份验证的MVC应用程序。当我在本地开发时,我希望能够登录以进行测试/开发。而应用程序的网址就像http://localhost:43400
。这也在AD应用中编码为Sign-On Url
和Reply Url
。使用Azure Active Directory - 一个应用程序在本地登录并发布时
当我将同一个应用程序部署到服务器时,应用程序url被更改 - 变成类似myappname.azurewebsites.net
的东西,我无法使用相同的AD应用程序登录。我能做的最好的办法是完成登录过程,但是AD将我重定向回localhost:43400
这是错误的。
Startup.Auth.cs
有PostLogoutRedirectUri
属性,我给了应用程序,但它没有任何区别。
任何方式使本地应用程序和部署的应用程序使用相同的Azure AD?
我可以用不同的网址和密钥做2个AD申请,并在部署时重写web.config
中的值。但这听起来不像是最好的解决方案。还有什么我可以做的?
UPD
这里我指的是在Startup.Auth.cs
位:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = Authority,
PostLogoutRedirectUri = postLogoutRedirectUri, // <-- this is coming from web.config, different in dev and prod
Notifications = new OpenIdConnectAuthenticationNotifications()
{
.....
}
});
查看完整的代码清单here。
而在Azure的AD应用我想这两个地址作为回复地址在同一时间:
但广告只用了一个地址重定向,即使客户端指定匹配一个重定向的记录。
您不能在该Azure AD中创建2个独立的应用程序吗? –
我可以 - 这就是我问题的最后部分所说的。有没有更好的办法? – trailmax
对不起......没有看过那部分!你可以做的另一件事是在同一个应用程序中为两个环境提供重定向URI。我试过的是在我的应用程序中使用同一个环境的多个重定向URI(一个用于注册,另一个用于登录),但是您可以尝试一下。 –