Я создаю аутентификацию Azure AD, которая работает нормально, единственная проблема заключается в том, что если пользователь щелкает ссылку, которая выглядит как host.com/xxx/bbb, если они не аутентифицированы, то они перенаправляются в root.
Мне нужно, чтобы они по-прежнему перенаправлялись на исходный URL-адрес, который они ввели в браузере. Можно ли этого добиться? Ниже приведен фрагмент кода, который я использую при запуске приложения:
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = XXX,
Authority = string.Format("https://login.microsoftonline.com/{0}", YYY,
Notifications = new OpenIdConnectAuthenticationNotifications
{
RedirectToIdentityProvider = async n => { await Task.Run(() => SetRedirectUrl(n)); }
}
});
}
private static void SetRedirectUrl(RedirectToIdentityProviderNotification<OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> notification)
{
notification.ProtocolMessage.RedirectUri = notification.Request.Uri.AbsoluteUri;
}
Ни одно из свойств OwinRequest не содержит полного пути, который я ищу. Я также пытался смотреть на
HttpContext.Current.Request.Url
но это также не имеет полного адреса.