Я использую sha хеш имени пользователя, гуида в веб-конфигурации и пароля, сохраненного как varchar (40). Если они захотят к грубой силе / словарь, то они должны будут взломать веб-сервер для гуида также. Повреждения имени пользователя, составляющие таблицу радуги через целую базу данных, если они действительно находят пароль. Если пользователь хочет изменить их имя пользователя, я просто изменил пароль одновременно.
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(
username.ToLower().Trim(),
ConfigurationManager.AppSettings("salt"),
password
);
Вот слишком сложный пример, который хорошо справляется с организацией всего - за счет ясности и простоты.
(источник: gsdesign.ro )
Не для того, чтобы специально рекомендовать symfony , а скорее это подход, который я считаю довольно хорошим (но не "идеальным" )
Позволяет:
Кроме того, среди взлетов и падений Symfony, я думаю, что одна вещь, которую он делает очень хорошо, - это кеширование. И я не имею в виду кеширование шаблонов / представлений - я имею в виду кеширование, подобное компиляции .
Когда проект выполняется в первый раз, symfony создает мастер-файл классов библиотеки который при последовательных обращениях к приложению,
Мы используем структуру, аналогичную вашей последней «многосайтовой» опции, для многосайтового механизма форума, который мы создали самостоятельно, и это работает очень хорошо. Вы всегда можете скопировать модули, если вам нужно, и это также позволяет сайту A немного настроить свой модуль, не затрагивая сайт B.
Когда вы входите в практическое применение этого, вы говорите о полностью отдельных командах , может быть, даже для предприятий, использующих эти два сайта, небольшое разделение - не самое худшее. У нас также есть папка общих модулей, но если вы назовете файл так же, как в папке модулей сайта, вместо этого будет использоваться эта версия.