2013-02-18 5 views
0

В настоящее время я работаю над веб-сайтом в ASP.NET, где требуется система входа в систему. Однако, ошибочно полагая, что строка соединения для базы данных ролей совпадает с строкой подключения для моей базы данных Microsoft SQL, я понял, что не знаю, где была база данных ролей. Я выполнил поиск через свой компьютер для чего-то, похожего на базу данных ролей (поиск как ролей, так и .mdf), и не нашел ничего, что я мог бы идентифицировать как это. Знаете ли вы, какие ошибки я здесь делаю? Должен ли я специально создавать эту базу данных ролей? До сих пор мой web.config код читается как (без идентифицирующих строк соединения в верхней части):Не удается найти базу данных ролей

<system.web> 
    <compilation debug="true" targetFramework="4.5"/> 
    <httpRuntime targetFramework="4.5"/> 
    <roleManager enabled="true" defaultProvider="providerForLogin"> 
     <providers> 
     <add name="providerForLogin" type="System.Web.Security.SqlRoleProvider" applicationName="WebSite4" connectionStringName="ConnectionString" /> 
     </providers> 
    </roleManager> 
    </system.web> 
</configuration> 

Заранее спасибо за любую помощь вы можете дать!

+0

Было бы странно, если бы они были * разными * базами данных. Из взглядов вещей вы используете стандартные поставщики ASP.NET ... так что сделайте шаг назад. Что ты пытаешься сделать? Если вы хотите спуститься по пути использования поставщика членства ASP.NET ..... http://msdn.microsoft.com/en-us/library/yh26yfzy(v=vs.100).aspx – Arran

ответ

2

Членство в ASP.Net не создает отдельную базу данных, если вы укажете ту же строку подключения к базе данных.

Правильно, что вы делаете, что хранит таблицу Users, Role, Membership в той же базе данных, где существуют ваши таблицы.

FYI: Если ваше приложение является новым, пожалуйста, используйте Universal Providers, которая является заменой старого ASP.Net членства (тот, который вы сейчас используете)

+0

Выполнение что-то вроде этого. Я получаю ошибку: «Не удалось найти хранимую процедуру dbo.aspnet_CheckSchemaVersion». Я предполагаю, что это потому, что база данных не была инициализирована или что-то в этом роде? Это как-то связано с запуском aspnet_regsql.exe? –

+0

Использование aspnet_regsql.exe для создания таблиц членства устарело. Пожалуйста, используйте univeral providers (см. Мой ответ), который использует NuGet. – Win

+1

+1 Спасибо за информацию. – AbZy

1

Там находится исполняемый файл с именем aspnet_regsql.exe, что вам нужно запустить для создать схему членства. Следуйте this tutorial

Однако, как и @Win, это старый. Используйте Universal Providers, если вы разрабатываете VS2012.

+0

Большое спасибо! Я искал учебник, который научил бы мне эту вещь Роли! –

Смежные вопросы