![]() |
|
Модераторы: gambit |
![]()
|
|
| Lion_Smith |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2008 Репутация: нет Всего: нет |
Стоит у меня Visual Studio 2008, OS Windows XP SP2 и IIS 5. И делаю я с её помощью себе сайтик. И нужно мне на сайтике сделать нормальную авторизацию, аутентификацию и прочии преблуды. И вот, в умной книжки я вычитал про такую вещь как membership.
И сказано там: "Прежде чем вы сможете использовать программный интерфейс Membership API ASP.Net и элементы управления безопасностью ASP.Net вы должны выполнить несколько шагов: 1) Сконфигурируйте аутентификацию вашего сайта в файле Web.config. 2) Настройте хранилище данных Membership. 3) Сконфигурировать в файле web.config строку подключения к базе данных 4) Создать пользователей в хранилище данных Membership web-утилиты конфигурирования ASP.Net 5) Создать страницу регистрации, использующую готовые элементы управления Login или страницу использующую классы membership." И я начинаю капать по этому плану: 1)Почитав про конфигурирование файла Web.config я добовляю в него строчку:
Теперь в качестве режима для авторизации пользователей на моём сайте используется режим "посредством web-форм". 2) В качестве хранилища данных может выступать что угодно. Но я не хочу мудрствовать. Мне пока достаточно усвоить метод по умолчанию. А по умолчанию данные о пользователях хранятся в таблицах SQL. А для удобного создания этих таблиц (или их внедрения в вашу базу данных) есть утилита C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe, которая запускает специальный удобный мастер для этого дела. Я запускаю этот мастер и просто щёлкаю Next. Теперь у меня в SQL есть ещё одна база данных под названием aspnetdb. В этой базе даннных находится всё необходимое для работы Membership. 3) А вот тут начинает вопрос! Я без понятия какую строку подключения тут надо создавать! И какой Membership прописывать. Если у меня всё по умолчанию, то как я из книги понял, у меня уже и так всё работать должно. Я ведь не создаю своего поставщика данных и хранилище данных использую по умолчанию. 4) В Visual Studio 2008 выбираю меню Website->ASP.Net Configuration. И у меня запускается та самая web-утилита. Выглядит она как обычный сайт с заголовком Web Site Administration Tool. Там я сразу тыкаюсь во вкладку Security с надеждой увидеть интерфейс для создания, удаления и редактирования учётных записей пользователей. Но нет!!! Мне на встречу выскакивет сообщение такого характера: "There is a problem with your selected data store. This can be caused by an invalid server name or credentials, or by insufficient permission. It can also be caused by the role manager feature not being enabled. Click the button below to be redirected to a page where you can choose a new data store. The following message may help in diagnosing the problem: Unable to connect to SQL Server database. " и кнопка в низу страницы с надписью "Choose Data Store". Нажимая на которую я перехожу на вклудку провайдеры где пытаюсь протестить любой из доступных провайдеров, включая провайдер по умолчанию AspNetSqlMembershipProvider. Тест выдаёт мне такое сообщение "Could not establish a connection to the database. If you have not yet created the SQL Server database, exit the Web Site Administration tool, use the aspnet_regsql command-line utility to create and configure the database, and then return to this tool to set the provider. " Вопрос знатокам: Как мне запустить таки эту грёбаную утилиту и добавить с её помощью пользователей в базу данных SQL??? |
|||
|
||||
| Groff |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 51 Регистрация: 31.10.2006 Где: Belarus, Minsk Репутация: 2 Всего: 3 |
Прежде чем добавлять пользователей через WSAT (Web Site Administration Tool) необходимо настроить Membership провайдер. По умолчанию используется AspNetSqlMembershipProvider и он по умолчанию пытается коннектиться к базе aspnetdb.mdf, лежащей в App_Data. И использует он SQL Express. Все эти параметры заданы в глобальном файле настроек machine.config. Он находиться в %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\. Поэтому у тебя валят ошибки, что невозможно подсоединиться к базе данных.
Тебе надо сначала настроить провайдер в файле web.config твоего сайта. Как это сделать можешь почитать здесь: http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx После того, как провайдер будет настроен, идешь в WSAT > Provider Configuration. Там выбираешь своего настроенного провайдера (там же можешь проверить его нажав Test). Вот только после этого ты можешь управлять пользователями в Security. |
|||
|
||||
| Lion_Smith |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 14.3.2008 Репутация: нет Всего: нет |
БОльшое спасибо, Groff!!!
Я понял в чём была моя проблема, после твоего ответа. Если бы не ты, пришлось бы ещё не мало помучиться. Я посмотрел файл %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config и увидел следующее:
И тут меня осенило оглоблей промеж глаз! Дело в том, что у меня стоит полнофункциональный MS SQL 2005. Я поставил его сразу после установки VS 2008. Разумеется утилита C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe при создании хранилища данных пользователей действовала в соответсвии с настройками этого самого полнофункционального MS SQL 2005. (я перезапустил эту мастер-утилиту и посмотрел таки куда и как она создаёт свои таблицы). Таким образом я создавал хранилище данных в MS SQL 2005. А когда запускал WSAT, то в соответсвии с настройками machine.config пытался подключиться к SQL EXPRESS. Результатом чего было: Unable to connect to SQL Server database. Я Поменял строку подключения на нижеследующую:
и перезапустил WSAT! Вот всё и заработало. Ещё раз спасибо. Добавлено через 3 минуты и 43 секунды Так я запустил стандартный AspNetSqlMembershipProvider. А вот с созданием своего провайдера пока не заморачивался.. если понадобятся то создам. Здесь: http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx всё понятно! Добавлено через 7 минут и 2 секунды |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |