突然,此错误开始发生。 Web api方法是这样的:
// POST api/Account/Logout
[Route("Logout")]
public IHttpActionResult Logout()
{
Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType);
return Ok();
}
该方法位于具有[Authorize]属性的AccountController内部。
当我刚登录时,看到一个页面也具有[Authorize](授权),我按了一个允许我注销的按钮。 “注销”按钮使用Ajax调用Web Api。
让我也告诉你,这以前曾经起作用。...突然它停止起作用了。
我已经在Startup.Auth.cs中添加了以下代码:
var config = new System.Web.Http.HttpConfiguration();
app.UseWebApi(config);
但是它也不起作用。我添加该行是为了以防万一,因为当我老了时,以前就行了,没有该行。
对此有任何帮助吗?
也请不要建议删除[授权]装扮,正如我在此处的其他答案中所看到的那样。 Web Api必须称为通过身份验证。
编辑:这是Ajax中的调用:
self.logout = function () {
// Log out from the cookie based logon.
var token = sessionStorage.getItem(tokenKey);
var headers = {};
if (token) {
headers.Authorization = 'Bearer ' + token;
}
$.ajax({
type: 'POST',
url: '/api/Account/Logout',
headers: headers
}).done(function (data) {
// Successfully logged out. Delete the token.
self.user('');
sessionStorage.removeItem(tokenKey);
location.href = '/';
}).fail(showError);
}