Я сейчас пишу внутреннее веб-приложение (с ASP.Net Web Forms), и оно представляет собой странную проблему.Я должен быть в состоянии выдать себя за текущего зарегистрированного в Windows пользователя Windows и выполнить команду на основе их Аутентификации Windows для входа в систему ... И ... если у них не установлена Аутентификация Windows в приложении, которое я должен использовать длявойти в систему, я должен иметь возможность принять имя пользователя и пароль.Я также должен написать приложение в .Net 4.0 и максимально защитить его.Я получил это, чтобы работать, не используя Windows Authentication или Forms Authentication в web.config, и вместо этого устанавливая переменные сеанса для защиты от доступа пользователей к страницам в веб-приложении, кроме входа в систему. Я сделал это, создав переменную сеанса с странным именемсо значением, основанным на их имени пользователя (Windows Auth или нет), а затем секретной переменной сеанса.Секретная переменная находится в файле web.config в виде 256-битной зашифрованной строки, в которой я расшифровываю ее и устанавливаю в качестве секрета сеанса.Для загрузки страницы первая переменная сеанса не может быть пустой, а вторая переменная должна равняться значению дешифрованного ключа ... если переменные не проходят проверку, они перенаправляют их на страницу входа.Я настроил это на каждой странице, универсальном обработчике и методе веб-сервиса в веб-приложении.Я делаю тайм-аут сеанса после нескольких минут бездействия, и при выходе из системы я устанавливаю все переменные сеанса равными нулю, и срок действия всех файлов cookie истекает.(Я также отключаю весь кэш).
Мой вопрос ... Обеспечивает ли это сопоставимость безопасности с проверкой подлинности с помощью форм?Я всегда использовал проверку подлинности с помощью форм, но не могу использовать ее здесь.Если бы я это сделал, пользователям пришлось бы переконфигурировать настройки в IIS и в web.config, чтобы переключать процедуры входа в систему (насколько я знаю, вы не можете использовать как проверку подлинности с помощью форм, так и проверку подлинности Windows для управления безопасностью ваших страниц и других веб-страниц).Ресурсы).С помощью метода, описанного выше, я могу достичь лучшего из обоих миров, но мне любопытно, насколько безопасны мои методы.Есть ли что-нибудь еще, что я могу реализовать здесь, чтобы обеспечить максимальную безопасность, кроме использования аутентификации форм?Можно ли достичь такого же уровня безопасности проверки подлинности с помощью форм, не используя ее?
Спасибо за предварительное понимание!