我有一个在ASP classic中实现的Web应用程序。现在我们想迁移到ASP.NET,但由于应用程序非常庞大,我们无法立即迁移。相反,我们决定逐步添加和替换ASP.NET位。
我知道可以对ASP经典使用ASP.NET身份验证,如下所述:http://weblogs.asp.net/scottgu/archive/2007/03/04/tip-trick-integrating-asp-net-security-with-classic-asp-and-non-asp-net-urls.aspx
我需要的恰恰相反。有没有办法使用我们的ASP经典身份验证系统保护ASP.NET页面?如果没有标准的方法,你将如何实现这样的事情?
由于
答案 0 :(得分:1)
如果您可以通过ASP.NET FormsAuthentication模块对其进行解密的方式加密Classic ASP代码中的有效票证,那么将考虑具有此类票证(存储在cookie或URL中)的用户在ASP.NET请求管道中进行身份验证。
以下是有关如何使用静态FormsAuthentication.Encrypt
方法手动加密的文档:
http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.encrypt.aspx
这说明票证真的没什么特别,基本上就是用户名,到期日期。请注意,您还会在故障单中存储一些额外的用户数据。
当然,这仍然没有给我们实际的加密算法。这取决于web.config中的配置,特别是<machineKey>
- 元素。您应该明确设置 decryptionKey 属性,因为您需要在Classic ASP代码中使用相同的密钥。
您还应该设置 decryption 属性,以便在Classic ASP代码中使用相同的算法(例如DES)。如果您可以支持Classic ASP代码中的内置解密算法,则可以根据需要创建自定义解密算法。
你最终会得到这样的配置:
<machineKey decryptionKey="your key here" decryption="DES" />
这就是我实现它的方式。