Как использовать классическую аутентификацию ASP с ASP.NET? - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть веб-приложение, которое реализовано в классическом ASP. Теперь мы хотим перейти на ASP.NET, но поскольку приложение довольно большое, мы не можем мигрировать сразу. Вместо этого мы решили перейти туда, постепенно добавляя и заменяя биты ASP.NET.

Я знаю, что возможно использовать аутентификацию ASP.NET с ASP classic, как описано здесь: 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.NET с помощью нашей классической системы аутентификации ASP? Если не существует стандартного способа сделать это, как бы вы это реализовали?

Спасибо

1 Ответ

1 голос
/ 09 декабря 2011

Если вы можете зашифровать действительный тикет в своем классическом ASP-коде таким образом, чтобы модуль ASP.NET FormsAuthentication мог его дешифровать, то будет считаться пользователь с таким тикетом (хранящийся в файле cookie или в URL).аутентифицирован в конвейере запросов ASP.NET.

Вот документация о том, как вручную шифровать статический метод FormsAuthentication.Encrypt:

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.encrypt.aspx

Это показывает, чтобилет на самом деле ничего особенного, в основном имя пользователя, срок действия.Обратите внимание, что вы также храните некоторые дополнительные пользовательские данные в заявке.

Конечно, это все еще не дает нам фактический алгоритм шифрования.Это зависит от конфигурации в web.config, в частности, <machineKey> -элемента.Вы должны явно установить атрибут decryptionKey , потому что вам нужно использовать тот же ключ в вашем классическом ASP-коде.

MSDN: элемент machineKey

И вам также следует установить атрибут decryption , чтобы вы могли использовать тот же алгоритм в вашем коде Classic ASP (как DES например).При необходимости вы можете создать собственный алгоритм дешифрования, если можете поддерживать встроенные в вашем классическом ASP-коде.

В итоге вы получите такую ​​конфигурацию:

<machineKey decryptionKey="your key here" decryption="DES" />

Вот как я бы это реализовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...