我一直試圖阻止重定向,當我從控制器返回一個NotAuthorized IActionResult,但無論我的企圖,NotAuthorized被轉換爲重定向。mvc6未授權的結果重定向而不是
我已經嘗試過here(同樣的問題,使用較舊的測試版框架,我使用1.0.0-rc1-final)。我沒有Notifications命名空間(已在rc1-final中刪除)。
這是我的登錄控制器:
在這個[HttpPost]
[AllowAnonymous]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
if (ModelState.IsValid)
{
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
if (result.Succeeded)
{
return Ok(model);
}
if (result.IsLockedOut)
{
return new HttpStatusCodeResult((int)HttpStatusCode.Forbidden);
}
else
{
return HttpUnauthorized();
}
}
return HttpUnauthorized();
}
在Startup.cs我曾嘗試變化:
services.Configure<CookieAuthenticationOptions>(o =>
{
o.LoginPath = PathString.Empty;
o.ReturnUrlParameter = PathString.Empty;
o.AutomaticChallenge = false;
});
每次登錄失敗(請忽略了密碼就OK返回)並應導致一個空的401頁面,我得到一個重定向到/帳戶/登錄。這裏有什麼竅門?
您是否正在嘗試在登錄頁面上執行此操作?還是用於REST API認證?如果它適用於API,您可能會看到:http://wildermuth.com/2015/9/10/ASP_NET_5_Identity_and_REST_APIs – drinck
REST API,您的鏈接假定存在Notifications命名空間,但它已被刪除。鏈接的解決方案不再有效。 – galmok