ASP.NET - система ручной аутентификации - PullRequest
2 голосов
/ 08 июня 2010

Мы разрабатываем приложение ASP.NET C #, которое будет содержать систему аутентификации, которая аутентифицирует пользователей на нескольких уровнях (пользователь, администратор, супер-администратор и т.

Наша идея - НЕ использовать встроенную функцию аутентификации форм ASP.NET. Мы планируем создать для него «новую» систему на основе объекта Session, а база данных SQL будет содержать информацию о пользователях, такую ​​как имя пользователя и пароль.

Есть ли СЕРЬЕЗНЫЕ различия между нашей идеей и функцией аутентификации с помощью форм?

Какие риски безопасности мы берем на себя? Как мы их решаем?

Является ли это хорошей альтернативой для функции аутентификации форм?

Ответы [ 3 ]

3 голосов
/ 08 июня 2010

Мне было бы интересно узнать причину вашего отвращения к встроенным поставщикам членства.

Посмотрите эту ссылку.http://msdn.microsoft.com/en-us/library/f1kyba5e.aspx В нем объясняется, как реализовать пользовательский MembershipProvider, который можно использовать для проверки подлинности на основе любой существующей / планируемой базы данных / хранилища, независимо от того, основана ли она на сеансах (не уверен, как это будет сохраняться) или в реляционной базе данных.

Ваше требование для суперпользователей, администраторов и т. Д. Хорошо укладывается в систему поставщика ролей.Он действительно очень прост в использовании, и команда ASP.NET в Microsoft уже рассмотрела риски безопасности и способы их решения.

Прочитайте эти две записи блога Скотта Гатри:

http://weblogs.asp.net/scottgu/archive/2006/02/24/ASP.NET-2.0-Membership_2C00_-Roles_2C00_-Forms-Authentication_2C00_-and-Security-Resources-.aspx

http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx

1 голос
/ 08 июня 2010

Дело в том, что вы можете смешивать и сочетать поставщика членства, проверки подлинности с помощью форм и поставщика ролей, чтобы в значительной степени удовлетворить большинство сценариев.Разве это не подойдет вашим потребностям?Вам действительно нужно заново изобрести колесо?

0 голосов
/ 08 июня 2010

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

Если это не подходит, вы можете создать свои собственные формы входа, но яНастоятельно рекомендую использовать куки-файлы FormsAuthentication и управление сеансами как минимум.Он уже готов, протестирован и имеет собственный конфиг в файле web.config.Так зачем делать это снова?

...