我使用Azure身份验证创建了一个Web应用程序。 它在本地工作正常,但在发布时,auth回复url正在寻找localhost。 我已经将正确的回复网址添加到Azure门户网站,如果我将locahost或requireUrl添加到列表顶部,我可以使用它。
搜索修复程序说我需要使用web.config转换来设置localhost或已部署应用程序的回复网址。
我无法让它发挥作用。 我正在使用:
<Configuration>
<system.identityModel.services>
<federationConfiguration>
<wsFederation reply="localhost" realm="localhost" issuer="https://login.microsoftonline.com/"/>
</federationConfiguration>
</system.identityModel.services>
</configuration>
仅用于测试我已将deployURL设置在Azure回复网址列表的顶部,并且它对部署的应用程序工作正常,但本地开发版本在登录后重定向到deployedURL。
我认为上面的web.config代码会重定向本地开发版本以保持本地化。
我错过了什么?
答案 0 :(得分:3)
对于其他发现问题的人我使用了错误的OWIN方法。 解决方法是将replyUri添加到Start.Auth.cs
private static string redirecturi = ConfigurationManager.AppSettings["ida:RedirectUrl"];
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
PostLogoutRedirectUri = postLogoutRedirectUri,
RedirectUri = redirecturi
});
}
然后将其添加到web.config。
<appSettings>
<add key ="ida:RedirectUrl" value="https://localhost:44312/"/>
</appSettings>
并在web.config.release或任何其他类似的转换文件中进行转换;
<add key="ida:RedirectUrl" value="APP URL ADDED TO AZURE REPLY URLS" />