我正在尝试在ASP.NET MVC应用程序中解决PEN测试问题。我在应用程序中使用OWIN身份验证中间件,它的配置如下:-
app.UseCookieAuthentication(
new CookieAuthenticationOptions
{
AuthenticationType = CookieAuthenticationDefaults.AuthenticationType,
CookieHttpOnly = true,
ExpireTimeSpan = TimeSpan.FromMinutes(120),
SlidingExpiration = true,
LoginPath = new PathString("/Account/Login"),
LogoutPath = new PathString("/Account/LogOff"),
Provider = new CookieAuthenticationProvider()
});
在SignOut上,我称之为:-
HttpContext.GetOwinContext().Authentication
.SignOut(CookieAuthenticationDefaults.AuthenticationType);
应用程序在退出后按预期运行,即注销后,当我尝试通过在浏览器中输入URL导航到任何需要身份验证的页面时,它将导航到“登录”页面。
但是,当我拦截请求(具有会话的任何页面的请求)并将此请求添加到Burp Repeater时,从应用程序注销后,当我通过Burp Repeater请求同一页面时,应用程序正在登录我,我可以看到所有Claims
都会保留,并且HttpContext.User.Identity.IsAuthenticated
的值为True。你能告诉我原因吗?我尝试了许多操作,包括以下操作(我正在尝试将ExpireUtc设置为期望其过期的某些值):-
Request.GetOwinContext().Authentication
.SignOut(new AuthenticationProperties
{
ExpiresUtc = DateTime.Now.AddDays(-1)
},
CookieAuthenticationDefaults.AuthenticationType);
以下是打p中继器的示例请求:-