热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Asp.NetCore中的FormsAuthentication解密

我们有多个具有SingleSignOn的Asp.NetMVC应用程序,其中我们使用FormsAuthentication.Encryp

我们有多个具有Single Sign On的Asp.Net MVC应用程序,其中我们使用FormsAuthentication.Encrypt()方法传递加密的字符串,并将其作为查询字符串传递,并使用FormsAuthentication.Decrypt()解密相同的字符串。

由于两个站点都是在Asp.Net MVC中开发的,因此我们能够使用表单身份验证并能够解密字符串。

现在,我们正在Asp.Net Core中开发一个新项目,在该项目中,我们将经过加密的字符串作为来自Asp.Net MVC的查询字符串进行传递,并且必须在Asp.Net Core Web应用程序中进行解密。

是否有其他方法可以在Asp.Net Core中解密字符串

注意:我们没有使用Asp.Net身份

//Encryption
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,"Name",DateTime.Now,DateTime.Now.AddMinutes(60),true,"DataToEncrypt");
string encrypted = FormsAuthentication.Encrypt(ticket);
Response.Redirect("siteUrl?COOKIEName="+encrypted );
//Decryption
HttpCOOKIE authCOOKIE = Request.COOKIEs["COOKIEName"];
var formsAuthenticatiOnTicket= FormsAuthentication.Decrypt(authCOOKIE.Value);
string _userData = formsAuthenticationTicket.UserData;



不,您之前所做的工作取决于两个应用程序共享相同的机器密钥,因此它们都以相同的方式进行加密/解密。 ASP.NET Core不支持机器密钥的概念,也不将其用于加密。相反,它使用数据保护提供程序。因此,无法在ASP.NET Core中解密基于机器密钥在ASP.NET应用程序中加密的值。句号。

也就是说,ASP.NET Core 中使用的数据保护提供程序概念可以在ASP.NET中使用,但这显然需要您更改当前设计以利用数据保护提供程序进行加密/ decrypt,而不是当前的方法。然后,假定在所有应用程序中都对提供程序进行了相同的配置,则可以在ASP.NET Core中进行解密。也就是说,要求数据保护提供商使用的密钥环位于所有应用程序都可以访问的共享位置,并且所有应用程序都配置为使用相同的应用程序名称。

有关设置方法,请参考documentation。该文档既适用于COOKIE共享又适用于auth,但这实际上是关于共享加密方案的,因此设置文档中提到的数据保护位就足够了。


推荐阅读
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 我将SpringMVC升级到Spring3.2.5.我的一些剩余调用即使存在,也会返回无法识别的字段异常.这是错误.Resolvingexceptionfrom ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • java和servlet交互,JSP与Servlet之间的交互,传值
    一.Servlet首先要明白一点,servlet需要容器的支持才能够运行,如Tomcat、jetty达到servlet的请求,需要ServletRequest对象和S ... [详细]
author-avatar
13205340728wan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有