首页 新闻 会员 周边 捐助

.net core 2.0 cookies问题

0
悬赏园豆:5 [待解决问题]

新建一个空的  没有验证的新项目

在Startup添加代码如下

public void ConfigureServices(IServiceCollection services)
{
// 添加 Cook 服务
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.SlidingExpiration = true;
options.Cookie.HttpOnly = true;
options.Cookie.SameSite = SameSiteMode.Lax;
options.Cookie.Path = "/";
options.LoginPath = "/Home/Index";
options.LogoutPath = "/Home/Index";
});

services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
// 使用Cook的中间件
app.UseAuthentication();
app.UseStaticFiles();

app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}

登录方法代码如下


var user = new ClaimsPrincipal(
new ClaimsIdentity(new[]
{
new Claim(ClaimTypes.Name, "username"),
}

, "Basic"));

await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user, new Microsoft.AspNetCore.Authentication.AuthenticationProperties
{

IsPersistent = true,
ExpiresUtc = DateTimeOffset.Now.Add(TimeSpan.FromDays(7)) // 有效时间
});

 

在需要验证权限的地方 头部加上这个属性     [Authorize]

 

运行起来 没问题 

查看浏览器cookies  

如下图

 

过期时间是 没问题  是 几天之后的 

 

但是 问题来了   页面 开着 不动  差不多 还不到一小时  在操作  竟然 退出了 

再次查看浏览器 cookies 发现 上图的东西还在 

那么为什么 cookies 都还在    竟然退出 没权限  是不是的设置什么   求解

 

 ps  特地测试了下 之前的  。net  franwork  版本的mvc项目  是没问题的

程序员编程日记的主页 程序员编程日记 | 初学一级 | 园豆:6
提问于:2017-10-18 10:15

解决了嘛 ,我也遇到了

Sumi-eCrow 1年前
< >
分享
所有回答(2)
0

cookie发送到过去了吗?如果发送过去了,或许是解密cookie的时候导致的,查一下log。

Timetombs | 园豆:3959 (老鸟四级) | 2017-10-18 10:25

  [Authorize] 这个是自带的验证    没有自己做任何处理   加这个的 就退出了 

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2017-10-18 10:30

@conan_lin: log呢,查一下log。

支持(0) 反对(0) Timetombs | 园豆:3959 (老鸟四级) | 2017-10-18 12:19

@Blackheart: 哪里的日志 ?  没有日志啊 

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2017-10-18 12:40

@conan_lin: 配置一下log,会记录下来详细的请求信息。

支持(0) 反对(0) Timetombs | 园豆:3959 (老鸟四级) | 2017-10-18 16:51

@Blackheart: 请求的cookies  一样的  没错 

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2017-10-18 17:15

@conan_lin: 查log啊,,,你怎么运行的,selfhost?iisexpress?还是iis?log会记录下来cookie验证失败的具体原因是什么。比如“Cookies was not authenticated. Failure message: Unprotect ticket failed”这类错误提示。

支持(0) 反对(0) Timetombs | 园豆:3959 (老鸟四级) | 2017-10-19 09:21

@Blackheart:  没有对应的错误  cookies  一直存在的   只是跳转到了 登录页 

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2017-10-19 16:44
0

options.ExpireTimeSpan = TimeSpan.FromMinutes(1440);

挨踢新手 | 园豆:71 (初学一级) | 2017-10-18 16:13

 一样的

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2017-10-18 16:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册