RC1-Final (VS2015.1) では、次のことを行いました: Identity 構成で、AutomaticChallenge を false に設定し、ApplicationCookieAuthenticationScheme = "ApplicationCookie":
services.AddIdentity<AppUser>(options =>
{
// cut
options.Cookies.ApplicationCookie.AutomaticAuthenticate = true;
options.Cookies.ApplicationCookie.AutomaticChallenge = false;
options.Cookies.ApplicationCookieAuthenticationScheme = "ApplicationCookie";
})
.AddUserStore<AppUserStore<AppUser, AppDbContext>>()
.AddDefaultTokenProviders();
次に、ログインにリダイレクトしたいコントローラーに、 ActiveAuthenticationSchemes = "ApplicationCookie" を追加します
[Authorize(ActiveAuthenticationSchemes = "ApplicationCookie")]
public async Task<IActionResult> Logout()
{
// cut
}
しかし、他のコントローラー(私の場合はWebAPI)は、パラメーターなしのAuthorize属性でマークしました。
AutomaticChallenge のAuthenticationOptions.csインライン ヘルプから:
false の場合、認証ミドルウェアは、AuthenticationScheme によって明示的に示されている場合にのみ応答を変更します。