在ASP.NET 5 / MVC 6应用程序(例如asp.net vNext)中,我使用内置模板创建了一个新的Web应用程序。对于身份验证,我选择Work and School Accounts
,因为组织中的每个人都有Office365订阅。
模板在Startup.Configure:
中生成以下代码 app.UseOpenIdConnectAuthentication(options =>
{
options.AutomaticChallenge = true;
options.ClientId = Configuration["Authentication:AzureAd:ClientId"];
options.Authority = ""https://login.microsoftonline.com/" + Configuration["Authentication:AzureAd:TenantId"];
options.PostLogoutRedirectUri = "https://localhost:44348/";
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
});
这很有效。在不更改任何代码行的情况下,我运行它,首先根据AzureAD对我进行身份验证,然后使用我的身份验证名称返回应用程序。
但现在我想将应用程序部署到在IIS下运行的开发服务器。所以我创建了一个站点,给它一个端口号(比如5000)。然后,我将options.PostLogoutRedirectUri
更改为http://localhost:5000/
。
我运行它,尝试登录,然后收到此错误:The reply address 'http://localhost:5000/signin-oidc' does not match the reply addresses configured for the application: {client id of the app}
。
那么,如何将我的应用程序从我的电脑移动到开发服务器,然后再移动到测试服务器等等?我想我很困惑,我必须改变。我应该转到Azure并为我计划使用的每个URL创建一个单独的应用程序吗?似乎我可以有多个回复地址,但每个应用只有一个登录URL。
或者我错过了一些更基本的东西?
答案 0 :(得分:0)
您需要在Azure管理门户中添加新的回复URL。在Azure Active Directory应用程序配置中,添加一个新的"回复URL"在"单点登录"部分。您可以为不同的环境设置多个回复网址。