Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конфигурирование Membership API, не работает web-утилита  
V
    Опции темы
Lion_Smith
Дата 23.5.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 я добовляю в него строчку:

Код

<system.web>
<authentication mode="Forms"/>
</system.web>


Теперь в качестве режима для авторизации пользователей на моём сайте используется режим "посредством 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???

 smile спасибо за внимание.. я ещё новичёк в деле программирования, а тем более web-программирования. По этому если вопрос жутко тупой, не сердитесь и попытайтесь ответить максимально подробно, чтобы я вас больше не тревожил.
PM MAIL   Вверх
Groff
Дата 23.5.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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.
PM ICQ MSN   Вверх
Lion_Smith
Дата 26.5.2008, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 14.3.2008

Репутация: нет
Всего: нет



БОльшое спасибо, Groff!!!  smile 
Я понял в чём была моя проблема, после твоего ответа. Если бы не ты, пришлось бы ещё не мало помучиться.

Я посмотрел файл %windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config и увидел следующее:

Код

<connectionStrings>
        <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
    </connectionStrings>


И тут меня осенило оглоблей промеж глаз!  smile 
Дело в том, что у меня стоит полнофункциональный 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.

Я Поменял строку подключения на нижеследующую:
Код

    <connectionStrings>
        <add name="LocalSqlServer" connectionString="data source=KUZ;Integrated Security=True;initial catalog=aspnetdb;" providerName="System.Data.SqlClient"/>
    </connectionStrings>



 и перезапустил WSAT!

Вот всё и заработало. smile
Ещё раз спасибо.

Добавлено через 3 минуты и 43 секунды
Так я запустил стандартный AspNetSqlMembershipProvider. А вот с созданием своего провайдера пока не заморачивался.. если понадобятся то создам. Здесь: http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx всё понятно!

Добавлено через 7 минут и 2 секунды
 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0392 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.