我正在使用一个使用会话状态的ASP Classic应用程序。它有很多页面。我正在慢慢迁移到.NET,其ETA大约为六个月。
是否值得更改经典的asp以使用自定义数据库会话来实现该时间范围?或者我应该只迁移,因此应用程序之间的功能是分开的,没有会话共享?
谢谢!
答案 0 :(得分:0)
过去,我通过维护两个应用程序进行转换,并在数据库层传递两者之间的身份验证信息。当用户请求访问新的ASP.Net应用程序时,使用guid和日期时间在表中写入一个条目,然后重定向到一个验证页面,该页面检查表格中是否有相应的行,该行仅对一定的时间(30s),并且一次性使用。
如果该行存在,则使用相同的用户名授予登录访问权限。
答案 1 :(得分:0)
执行此操作的常用方法是在迁移期间支持两个会话,并让asp.net管理asp和asp.net上所有资源的身份验证。
IIS 6及更高版本具有一项功能,可让您将经典的asp资源重定向到aspnet处理程序。 (我相信这是通过wild card application maps)
通过此操作,您将获得未经授权的会话的登录重定向。
如果你想从asp会话访问.net会话,常见的方法是在.net中创建一个处理程序(例如,调用它为“/ SessionSynch”),而不是从asp,你可以执行一个帖子到它,获取所有必要的会话数据。这里需要考虑的是安全性。您希望确保.net处理程序检查请求,并且只有在您的请求来自适当的源时才显示会话信息。
您还可以通过数据库同步信息。
你可以依赖的asp和asp.net之间的一个常见标识是会话cookie,它可以从双方轻松检索。如果您启动Fiddler,您会注意到成功验证后,您的会话cookie将被设置。然后,您可以使用asp中的此cookie从.net
中检索会话信息答案 2 :(得分:0)
我要考虑的两件事是:
如果时间表尚未被接受,并且您只是想尝试添加其他可交付成果,那么这不会让您花费很长时间。
答案 3 :(得分:0)
最简单的方法(正如你刚才提到的那样)只有一个中间脚本(asptoaspx.asp?redirect = aspxscript.aspx)执行自动表单发布(用户看不到它) )。这是该脚本的伪代码。
这样,当您从ASP页面转到应用程序中的ASPX页面时,您可以准备好使用会话变量。
希望它有所帮助!