Я хочу защитить отдельные (динамические) страницы в приложении ASP.NET MVC.Простая защита паролем на странице ASP.NET MVC
Я не хочу использовать полномасштабную систему аутентификации - мы уже используем проверку подлинности для администраторов сайта. Вместо этого мы можем отправлять ссылки на страницу с паролем для определенных пользователей.
Способ, которым я обрабатываю это сейчас, когда представлен действительный пароль, мы создаем зашифрованный файл cookie, содержащий идентификатор страницы (Guid) и их идентификатор сеанса и перенаправляем их на страницу. В нашем действии контроллера «Страница» мы проверяем этот файл cookie.
Итак, первый вопрос - это лучший (самый безопасный) подход (помимо использования проверки подлинности форм)?
Второй вопрос: могу ли я прочитать машинный ключ, используемый для проверки подлинности форм, для выполнения шифрования, или еще лучше использовать FormsAuthentication для шифрования файла cookie (единственная перегрузка, которую я вижу, - это та, которая требует FormsAuthenticationTicket)?
Поскольку мы всегда генерируем новый машинный ключ перед развертыванием, было бы лучше, если бы все наше шифрование использовало тот же ключ.
[Update]
относительно того, как получить доступ к ключу машины я нашел свой ответ на http://rich-rogers.com/archive/asp.net-c-sharp-encrypt-hash-using-machinekey-values
[Update 2]
Я понимаю, что после того, как задать этот вопрос, так как мне нужно будет поддерживать список страниц, к которым у них есть доступ, возможно, мне лучше было бы сохранить их в текущем сеансе. Я могу хранить список токенов безопасности с датой истечения срока действия. Так как у меня уже есть обертка вокруг сеанса, это тоже должно быть легко проверить.