正常に動作する Azure AD 認証を構築しています。唯一の問題は、ユーザーが認証されていない場合に host.com/xxx/bbb のようなリンクをクリックすると、ルートにリダイレクトされることです。
ブラウザに入力した元の 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
しかし、これにも完全なアドレスはありません。