2017-10-23 14 views
0

私はAzure ADを介してログインしたマルチテナントのWebサイトを実装しています。現在、特定のページにredirecturiを設定し、そのページを返信URLのリストに追加しました。ログイン後に動的ページにリダイレクト

私の質問は、ログイン後に返信用のURLにないページに移動するにはどうすればよいですか?

私はOpenID ConnectでASP.NETコアを使用しています。

例フロー:

ユーザは、注文IDが動的であるhttp://{domain}/orders/orderidにナビゲート。私が望むふるまいは、ユーザーが(Azure AD)ログインメニューに移動し、資格情報を入力した後、同じページ、つまりhttp://{domain}/orders/orderidにリダイレクトする必要があるということです。

現在のところ、ユーザーはAzure ADログインメニューにリダイレクトされますが、資格情報を入力すると、返信URLのリストにある事前定義済みのページ( 'profile')に移動します。

サンプルコード:

public IActionResult LogIn() 
{ 
    if (!User.IsAuthenticated()) 
    { 
     return Challenge(new AuthenticationProperties { RedirectUri = "/profile" },OpenIdConnectDefaults.AuthenticationScheme); 
    } 
    else 
    { 
     return RedirectToAction(nameof(Index), "Home"); 
    } 
} 

答えて

0

あなたは、まずご注文のコントローラ上[Authorize]を追加する必要があります。ユーザーが認証されていない場合、Azure ADログインページにリダイレクトされます。

new AuthenticationProperties { RedirectUri = "/" }を使用してください。ユーザーが認証されると、元のページ(http:// {domain}/orders/orderid)にリダイレクトされます。

+0

[Authorize]属性を使用しないと、Azure ADログインページをログインが必要な場合にのみ表示されます。 (一部のオーダーは誰にでも見えるはずです)。また、javascriptを使って呼び出しを行う必要があるかもしれません。 – AgentHunt

関連する問題