azure authentication web app localhost回复网址

时间:2017-11-17 06:42:00

标签: c# asp.net-mvc azure web

我使用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代码会重定向本地开发版本以保持本地化。

我错过了什么?

1 个答案:

答案 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" />