我正在构建一个运行良好的 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
但这也没有完整的地址。