首页 新闻 搜索 专区 学院

.net core 凭据问题

0
悬赏园豆:30 [已解决问题] 解决于 2020-04-12 16:34
  • await HttpContext.SignInAsync
    登录后会有.AspNetCore.Cookies,Cookie 存储登录凭据
    访问页面,异步请求页面都没问题 HttpContext.User.Identity.IsAuthenticated 一直True
    HttpContext.User.FindFirst(ClaimTypes.Sid).Value 可以获取值

  • 但是我用 flash swfupload.swf 上传文件到后台时,后台接受不到Cookie
    导致 HttpContext.User = null ,IsAuthenticated = False

  • 我把 .AspNetCore.Cookies的值 通过 Flash 的 post_params 参数,传递给后台。
    后台Request.Form["Cookies"]能获取到.AspNetCore.Cookies的值,

  • 但是怎么把 .AspNetCore.Cookies的值 转成 凭据 ClaimsPrincipal 呢
    我想获取 HttpContext.User.FindFirst(ClaimTypes.Sid).Value
parabeyond008的主页 parabeyond008 | 初学一级 | 园豆:2
提问于:2020-04-05 16:54
< >
分享
最佳答案
0

要自实现一个Authentication中间件实现。可以找官方Security源码
https://www.cnblogs.com/gt1987/p/11011754.html
这个是我自己实现得 Basic认证实现,你可以参考下
原理都差不多。需要自己实现AuthenticationHandler,从Request里面 拿到认证的参数,最后生成ClaimsPrincipal

收获园豆:25
gt1987 | 小虾三级 |园豆:1095 | 2020-04-10 17:22
其他回答(1)
0

如果是 ajax 请求,加上 withCredentials: true 就可以了。

xhrFields: {
    withCredentials: true
}
收获园豆:5
dudu | 园豆:37126 (高人七级) | 2020-04-05 17:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册