Защита паролем для веб-страниц ASP.NET? - PullRequest
1 голос
/ 28 января 2009

Я пытаюсь реализовать простейшую общую папку «files» для веб-сайта, но хочу иметь «разумный» уровень контроля доступа - т.е. никаких случайных мультимегабайтных загрузок при прохождении hoi-polloi.

Пользователи получают пароль и т. Д. Затем они входят в систему, после успешной проверки учетных данных им предоставляется одно из двух возможных прав доступа - доступ только для чтения (RO) или доступ для чтения и записи (RW) к файлам. «запись» в этом контексте означает, что они могут загружать файлы.

Управление пользователями / регистрация / напоминания пароля можно обрабатывать вручную - на этом этапе код не требуется.

Какой лучший способ сделать это:

  1. Записать секрет в переменные сеанса?
  2. Сохранить какой-нибудь ограниченный по времени ключ сеанса как локальный файл cookie?
  3. Проверить локальную базу данных на наличие какого-либо ключа сеанса?
  4. (заголовок слишком сложный) использовать механизмы аутентификации pukka .NET

Любые конструктивные предложения приветствуются. Я был бы особенно рад, если бы кто-то мог указать мне на хороший пример породы, основанной на C # / ASP.NET.

Большое спасибо

Джерри.

Ответы [ 2 ]

8 голосов
/ 28 января 2009

Не вижу смысла изобретать велосипед, когда в asp.net встроены механизмы аутентификации. Проще всего реализовать аутентификацию с помощью asp.net форм.

Вот рецензия на это: http://www.15seconds.com/Issue/020220.htm

Вы можете отобразить разрешения для каталогов в web.config, и вы даже можете хранить здесь имена пользователей и пароли, если вы выбрали этот путь. Это было бы самым легким, чтобы быстро оторваться от земли, хотя и не настолько гибким или будущим.

Тогда у вас есть членство в asp.net. Это функция asp.net 2.0, которая использует модель провайдера для предоставления функций членства. Существует SqlMembershipProvider, который предоставляет всю необходимую сантехнику для хранения информации о членстве в базе данных сервера sql (есть сценарии для автоматического создания таблиц, sprocs и т. Д.)

Больше информации здесь: http://msdn.microsoft.com/en-us/library/ms998347.aspx http://aspnet.4guysfromrolla.com/articles/102208-1.aspx

Это немного сложнее, но и гораздо надежнее.

1 голос
/ 22 мая 2009

Самый простой пример:

http://www.asp101.com/samples/login_aspx.asp

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