Членство в Asp.net и самостоятельные веб-приложения - PullRequest
0 голосов
/ 11 ноября 2010

Мне нужно быстро обернуть некоторую безопасность вокруг существующего веб-приложения ASP.Net 2.0.Подумав немного об этом, я вспомнил, что Microsoft создала эту парадигму членства и ролей пару лет назад, и что Visual Studio может по существу создать все для вас.

Таким образом, я продвинулся вперед, используя встроенный инструмент администрирования веб-сайта ASP.Net, и создал простую небольшую структуру безопасности вокруг приложения.После установки всех параметров Visual Studio создала симпатичную маленькую базу данных SQL Express под названием ASPNETDB.MDF прямо в только что созданном каталоге App_Data моего веб-сайта.Это прекрасно работает, пока вы не развернете его.

После попытки отправить это приложение на мой сервер DEV, я понял, что оно не будет работать, если на хост-компьютере не установлен SQL Express.Хуже того, я подумал, что по сути нет способа, которым это работало бы в среде с балансировкой нагрузки, учитывая, что сама БД будет изолирована только от одного из N узлов.

Вместо того, чтобы писать сценарий БД и пихать егов свой существующий ящик SQL ... Я решил спросить StackOverflow, есть ли лучшее решение для простых, но безопасных сайтов ASP.Net.

Я бы хотел сохранить существующую модель, но иметь базу данныхстать локальной или плоской БД, запеченной прямо в приложении.В настоящее время я даже в порядке развертывания плоского файла при каждом изменении пользователя или роли для противодействия сайтам с балансировкой нагрузки в PROD.

Нет ли способа создать какую-то аналогичную настройку с плоскимфайл?Я думал, в этом суть папки App_Data?

Ответы [ 3 ]

1 голос
/ 11 ноября 2010

Вы можете использовать собственного поставщика ролей и членства, который поддерживает плоский файл, такой как XML.Вот ссылка на провайдера членства в XML, я видел похожие реализации для ролей.

Провайдер членства в XML

1 голос
/ 11 ноября 2010

это не сработает, если на хост-компьютере не установлен SQL Express.

Не обязательно.Если вы по-прежнему хотите использовать поставщиков членства / роли по умолчанию, вы можете использовать сервер БД на хост-компьютере или использовать один экземпляр БД в качестве отдельного сервера (просто измените строку подключения для поставщиков).

Хуже того, я подумал, что, по сути, это никак не сработает в среде с балансировкой нагрузки, поскольку сама БД будет изолирована только от одного из N узлов.

Это утверждение не совсем правильно в данной конкретной ситуации.

С балансировкой нагрузки у вас будет не изолированная база данных, а отдельный сервер базы данных.

Я бы хотел сохранитьв существующей модели все же база данных стала локальной или плоской базой данных, встроенной прямо в приложение.В настоящее время я даже в порядке развертывания плоского файла при каждом изменении пользователя или роли для противодействия сайтам с балансировкой нагрузки в PROD

Если вы говорите, что приложение с надлежащей базой данных SQL не будет масштабироваться,Я не понимаю, как можно хранить плоские файлы.

Вы по-прежнему можете хранить локальную базу данных SQL Server, и она будет работать до тех пор, пока вы берете на себя ответственность за поддержание согласованности базы данных на разных узлах.

В вашей ситуации я бы лично использовал поставщика членства / ролей по умолчанию, как вы делаете сейчас.Но при развертывании просто измените строку подключения на соответствующий сервер базы данных.

Вам все равно понадобится база данных для других вещей, так почему бы не использовать одну и ту же базу данных для всех данных, входящих в приложение (включая членство / роли).

С уважением.

0 голосов
/ 12 ноября 2010

Я нашел отличное решение для этого здесь ... http://aspnetxmlproviders.codeplex.com/. Используя динамический XML, вы можете быстро взломать простую модель безопасности на основе поставщика.

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