членство в asp.net - аутентификация sql - PullRequest
3 голосов
/ 29 июня 2010

Я хочу знать, каков «правильный» способ настройки членства на новом веб-сайте.

Когда у меня появляется новый проект, я могу перейти на сайт / ASP.NET Configuration.Там я могу настроить проверку подлинности с помощью форм и управлять всеми пользователями, которые будут использовать эту страницу.Я могу создавать роли и правила для папок.Вся эта информация сохраняется в таблице, которая будет сохранена локально в базе данных App_Data / ASPNETDB.MDF.Я пытаюсь сделать так, чтобы вся эта информация была на хост-сервере вместе с веб-сайтом, но не локально.

Каков наилучший способ подключения моего веб-сайта, который я сделал локально, к серверу mssql, которыйявляется центральным.Я хочу иметь возможность перейти к конфигурации asp.net и управлять пользователями, но я хочу, чтобы данные сохранялись в таблицах на сервере mssql, а не в файле aspnetdb.mdf.

Я уже сделалТаблицы членства asp.net на сервере mssql с помощью файла aspnet_regsql.exe.

Обновление: не берите в голову, я нашел способ сделать это.Просто нужно было добавить <remove name="LocalSqlServer"/> в <ConnectionStrings> и затем мою собственную строку подключения.Теперь он работает ...

1 Ответ

4 голосов
/ 30 июня 2010

В Visual Studio SDK есть команда строки, которая называется aspnet_regsql. Откроется окно, и вы можете использовать его для настройки членства, ролей и поддержки профиля ASP.NET в любой базе данных SQL Server.

Для большинства приложений вы, вероятно, в конечном итоге напишите свои собственные страницы администратора членства. Это не сложно, и большинство необходимых вам элементов управления находятся на панели инструментов в Visual Studio. Вот поваренная книга, которую я дал в презентациях по безопасности:

Чтобы добавить членство и роли ASP.NET в существующую базу данных SQL Server:

  1. Открытие командного окна Visual Studio 2008.

    (Если вы должны запускать команды строки SQL в режиме администратора, вам потребуется чтобы открыть командную строку в режиме администратора, затем установите путь к включает исполняемые файлы Visual Studio SDK.)

  2. Запустите aspnet_regsql в этом командном окне.

  3. Для имен пользователей SQL, которые будут использовать базу данных, добавьте один или несколько из следующих ролей поставщика членства:

    aspnet_Membership_FullAccess - если пользователи могут зарегистрировать себя или других aspnet_Membership_BasicAccess - пользователи не могут зарегистрироваться aspnet_Membership_ReportingAccess - для статистики членства

  4. Для имен пользователей SQL добавьте одну или несколько из следующих ролей поставщика ролей:

    aspnet_Roles_FullAccess - создание и удаление ролей aspnet_Roles_BasicAccess - использовать роли asp.net

  5. Настройка исходного приложения и ролей с помощью SQL Server Management Studio:

    exec aspnet_Applications_CreateApplication @ ApplicationName = 'Northwind', @ ApplicationID = ''

    exec aspnet_Roles_CreateRole @ ApplicationName = 'Northwind', @ RoleName = 'Employee'

    exec aspnet_Roles_CreateRole @ ApplicationName = 'Northwind', @ RoleName = 'Manager'

    exec aspnet_Roles_CreateRole @ ApplicationName = 'Northwind', @ RoleName = 'Master'

  6. Реализуйте свою страницу "Новый пользователь", но пока не блокируйте ее авторизацией форм. Вы можете захотеть реализовать свою собственную форму, предполагая, что у вас уже есть пользовательские записи в вашей базе данных, и при условии, что вы хотите добавить роли как часть «создать пользователя» процесс. В любом случае используйте эту страницу, чтобы создать начальный набор пользователей для ASP.NET членство; это проще, чем пытаться заставить его работать с хранимыми процедурами. См. Пример кода для реализации создания пользователя без использования ASP.NET Элемент управления LoginView.

    Обратите внимание, что эта страница "Добавить пользователя" в примере приложения предполагает несколько вещей это трудно сделать со стандартным элементом управления Login в ASP.NET. Если вы создаете пользователей в качестве административной функции, вместо того, чтобы позволить пользователям добавлять себя, вы, вероятно, хочу иметь несколько ролей и иметь возможность выбрать роль. Еще важнее, у вас могут быть «пользовательские» таблицы, уже установленные в вашей базе данных, и вам необходимо интегрировать функциональность "нового пользователя" с добавлением записей в пользовательскую таблицу вашего приложения. Это прототип для создания собственного элемента управления Login, сбора дополнительных данных и интеграция создания пользовательских записей, записей о членстве в ASP.NET и роли ASP.NET задания. Все это делается в рамках внешней транзакции, поэтому они либо преуспевают или потерпеть неудачу как единица работы.

  7. После того, как вы создали пользователей и добавили их в роли, вы можете настроить аутентификацию форм. и заблокировать ваши страницы, которые требуют авторизации. Примечания:

    а. Не требуйте аутентификации для вашего каталога верхнего уровня. Страницы на этом уровне должен быть общедоступным. б. Добавьте web.config в каждый подкаталог, где страницы требуют аутентификации. Обычно установка уровня аутентификации будет единственной функцией в этих файлы web.config.

...