asp.net – 如何手动获取.aspnet.cookies Cookie中的信息?
我们有一个身份验证设置,我们不允许除标头中发送的承载令牌之外的所有内容.
但是,我有一种情况,我需要使用cookie代替一个Web API控制器. 我可以看到已经在名为“.aspnet.cookies”的请求中发送了一个cookie,其中填充了加密值. 如果我能找到解密值的方法,它会解决我的问题,但我不清楚如何这样做. 遗憾的是,我不能只是将身份验证配置为出于技术原因自动使用cookie. 有谁知道我可以使用哪个类来调用手动解密cookie值? 解决方法
我(OP)今天一直在研究这个问题,我找不到我想要的确切答案,但确实找到了解决方法.
我非常确信OWIN中间件在内部以某种方式使用ISecureDataFormat来保护/取消保护我看到的cookie(名为“.aspnet.cookies”).我无法弄清楚框架使用了哪个ISecureDataFormat,但我确实找到了我们使用它来处理AJAX请求头中传递的承载令牌的位置. 基本上,在AuthStartup类中,我有一些OAuthAuthorizationServerOptions,并发现我们使用其AccessTokenFormat属性(它是一个ISecureDataFormat)来处理承载令牌. 因为我可以从我的类访问AuthStartup.OAuthOptions.AccessTokenFormat,所以我决定只将持有者令牌的值放入我自己的会话cookie中,然后使用AuthStartup.OAuthOptions.AccessTokenFormat.Uprotect()来解密它的值. 这给了我一个AuthenticationTicket,其身份我可以填入GenericPrincipal,然后我将其分配给自定义FilterAttribute / IAuthorizationFilter中的System.Threading.Thread.CurrentPrincipal和HttpContext.Current.User,我将其应用于需要使用cookie的控制器. 我希望我知道如何更优雅地处理这种情况,但它对我想要实现的目标起作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ASP.NET MVC:访问日志
- 单元测试 – 使用Owin为MVC 5控制器创建单元测试
- asp.net – 我可以重新发布或携带POST数据(如果是这样,我可
- asp.net-mvc – 从OWIN身份验证中间件中考虑控制器属性
- asp.net-mvc – 实体类型处于“阴影状态”是什么意思?
- ASP.NET:请求cookie对于域名为null?
- asp.net-mvc – asp.net中的奇怪图像生成错误
- asp.net-web-api2 – Web Api 2 Post – UrlHelper.Link不能
- asp.net – ReportViewer控件返回空白页面
- 在asp.net-mvc中,有没有办法区分处于兼容模式的IE7用户和IE
- asp.net – IE超时后重新发送请求?
- asp.net – 无法找到请求的.Net Framework数据提
- asp.net-mvc-4 – 将ninject dependecyResolver用
- IIS7集成vs经典流水线 – 哪些使用更多的ASP.NET
- asp.net-core – Windows和Linux上的dnxcore50有
- asp.net – ASP .net MVC调用默认控制器和操作vs
- asp.net-mvc – 如何判断MVC AsyncController线程
- asp.net-mvc – DotNetOpenAuth在ASP.NET MVC中的
- asp.net-mvc – ASP.Net MVC尝试抓住最佳实践
- 使用带有自定义角色提供程序的asp.net mvc 4登录