Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.Net分阶段升级网站_C#_Asp.net_.net_Model View Controller_.net Core - Fatal编程技术网

C# ASP.Net分阶段升级网站

C# ASP.Net分阶段升级网站,c#,asp.net,.net,model-view-controller,.net-core,C#,Asp.net,.net,Model View Controller,.net Core,我只是想将开发转移到.Net内核和Angular 我们有一个用C#ASP.Net应用程序编写的遗留网站项目,它在功能上满足业务需求,性能良好,并且运行在最新技术上。也就是说,很难使用它,进行更改需要时间,它确实需要在业务层进行彻底检查,DAL需要迁移到(EF)并希望迁移到新的GUI框架。这些更改都是为了提高质量、开发人员生产率,最终加快发布速度 我们有一系列需要实现的新功能,它们几乎是独立的“插销”,非常适合作为单独的站点开发,但我们需要使用现有的登录详细信息和会话详细信息,以使用户体验无缝。目

我只是想将开发转移到.Net内核和Angular

我们有一个用C#ASP.Net应用程序编写的遗留网站项目,它在功能上满足业务需求,性能良好,并且运行在最新技术上。也就是说,很难使用它,进行更改需要时间,它确实需要在业务层进行彻底检查,DAL需要迁移到(EF)并希望迁移到新的GUI框架。这些更改都是为了提高质量、开发人员生产率,最终加快发布速度

我们有一系列需要实现的新功能,它们几乎是独立的“插销”,非常适合作为单独的站点开发,但我们需要使用现有的登录详细信息和会话详细信息,以使用户体验无缝。目标是在“新世界”中编写新功能,然后分块重新编写遗留页面

这肯定是一个普遍而明显的问题,但关于如何实现这一点的研究一直没有结果


真正的问题是如何在站点之间动态共享会话数据

听起来您当前正在将会话保存在内存中的数据中。解决这个问题的标准方法是将会话状态从内存中移到SQL Server、MongoDB、Redis等中,以便两个应用程序都可以访问共享状态

更新

现在,我们已经找到了问题的症结所在。如果您依赖于存储在字段/隐藏字段中的数据,则可能已经存在安全问题(如果不了解有关实现的更多信息,很难说)

我猜您想问的问题是,“如何安全地从旧系统导航到新系统(反之亦然)”。这里有两种可能的策略:

  • 想到的第一个解决方案是SSO(单点登录)方法。在这里,您将一个不透明令牌从一个系统传递到另一个系统,以标识当前用户
  • 如果您能够从同一主机名为旧/新应用程序提供服务,那么您可以使用cookie来存储某种类型的用户令牌
注:

  • 不要在url中传递纯文本用户id之类的内容
  • SSO令牌应该与用户id完全分离(例如,可以是引用共享数据库中记录的guid)

令人困惑,有点“全面”,你会得到这样一个固执己见的答案:如果DAL和GUI存在问题,那么首先解决这些问题。在最后一段中,您将以“共享会话数据”结束,这与“移动到核心和角度”没有多大关系。除了用户详细信息。。它控制访问、语言和权限,其他所有内容都存储在字段或隐藏字段中。分享用户详细信息已经够难了,不确定是否要通过URL传递,但1)不知道如何确保安全,2)用户可能会收到带有URL的电子邮件,他们不必再次登录。PS:我提到其他数据只是因为,不断被例外绊倒不相信有安全问题,隐藏字段仅用于存储ID。广告,这是我的问题的症结所在,单点登录的安全原因正在讨论中,但目前没有在功能列表上。非常感谢,是的,旧系统和新系统将由相同的主机名托管,所以我来看看如何共享cookie