2016-07-04 12 views
0

私のASP.NET Coreアプリケーションでは、ログインする必要があります。私は匿名ユーザー、すなわち公開表示に自動的にリダイレクト

[AllowAnonymous] 
public IActionResult Public() 
{ 
    return View(); 
} 

があるので、私のStartup.csに私が認証を必要とすることができる公共のアクションメソッドを作成し、ユーザーは自動的にログインページにリダイレクトされます。

enter image description here

は私が動作を変更し、自動的に公開ページにユーザーをリダイレクトし、それらがログインするためのリンクをクリックするようにしたいです。

ユーザーをログインページではなく公開ページにリダイレクトするにはどうすればよいですか?

+0

なぜ 'LoginPath'を'/home/public/'に変更しないのですか?フレームワークは認証されていないユーザ( 'Authorize'属性を持つアクション)をこのパスに自動的に送ります。 – martennis

答えて

0

だけApp_Startのデフォルトのマッピングを変更:

routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters* 
     new { controller = "Public", action = "Public", 
     id = UrlParameter.Optional } 
); 

UPDATE

あなたのコメントの後、私はこれがあなたのニーズにお答えしますと思う:

services.Configure<IdentityOptions>(options => 
{ 
    options.Cookies.ApplicationCookie.LoginPath = new PathString("/Home/Public"); 
}); 

は、スタートアップでConfigureServicesメソッドに追加します。 cs

+0

すべてのリクエストを一般に公開しないのですか?私は、認証されていない要求だけをPublicに送信したいと思います。ユーザーがログインすると、そのユーザーをホームに送信します。 – Sam

+0

@Samは私の更新された答えを調べます。 – Lesmian

関連する問題