Fox*_*Fox 8 c# openid azure-web-sites azure-active-directory
我已将Web应用程序配置为使用Azure Auth登录.一切正常,用户可以登录,如果他们尚未登录到Azure.
我的问题是,当用户已登录到Office 365的Azure并且他们浏览到我的网站时,他们会在下面收到此错误.我理解错误的含义,但我想知道如果出现此问题,是否有办法重定向到另一个URL(在我的网站上).这是错误:

这是我配置OpenId Auth的启动代码:
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions {
ClientId = Configuration.clientID,
Authority = authenticationAuthority,
PostLogoutRedirectUri = Configuration.logoutRedirectURL,
Notifications = new OpenIdConnectAuthenticationNotifications {
AuthenticationFailed = context => {
context.HandleResponse();
context.Response.Redirect("/Unauthorised.aspx?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
Run Code Online (Sandbox Code Playgroud)
有几种方法可以解决这个问题,具体取决于您的情况。
如果您想使用他们现有的凭据对他们进行身份验证,您可以在应用程序注册中启用多租户支持。这将允许外部用户使用他们自己的 AAD 凭据(而不是 AAD 租户中的凭据)对您的应用程序进行身份验证。
如果您需要强制他们使用您的凭据重新进行身份验证,您可以添加prompt=login到您的初始授权 URI ( https://login.microsoft.com/{tenant}/oauth/authorize?...&prompt=login)。这将强制用户对您的应用程序进行身份验证,即使他们已经有一个活动的身份验证 cookie(在大多数情况下,此处的“身份验证”仅意味着用户需要从列表中选择一个帐户,而不是重新输入 ID 和密码) )。