2013-04-20 2 views
1

Когда я пытаюсь получить на Web Site Administration Tool (WAT) (Проект-> Конфигурация ASP.NET в Visual Studio) я получаю следующее сообщение об ошибкеAsp.net членство WebSecurity.InitializeDatabaseConnection ошибка

Вы должны вызовите метод «WebSecurity.InitializeDatabaseConnection», прежде чем вы вызовете любой другой метод класса «WebSecurity». Этот вызов должен быть помещен в файл _AppStart.cshtml в корень вашего сайта.

И это моя строка соединения:

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database1.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 

Я также включен простое членство

<add key="enableSimpleMembership" value="true" /> 

Мой roleshipprivider конфигурация выглядит следующим образом

<roleManager enabled="true" defaultProvider="MySqlRoleProvider"> 
    <providers> 
    <clear /> 
    <add connectionStringName="DefaultConnection" applicationName="/" 
     name="MySqlRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" /> 
    </providers> 
</roleManager> 

И мое членство конф

<membership defaultProvider="MyOwnSqlMembershipProvider"> 
    <providers> 
    <clear/> 
    <add connectionStringName="DefaultConnection" enablePasswordRetrieval="false" 
     enablePasswordReset="true" requiresQuestionAndAnswer="false" 
     requiresUniqueEmail="true" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" 
     minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" 
     name="MyOwnSqlMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> 
    </providers> 
</membership> 

Кто-нибудь знает, где это ошибка?

Заранее спасибо, Матеуш Urban

ответ

1

Вам нужно включить код, чтобы фактически инициализации поставщика членства. Далее в _AppStart.cshtml должно работать:

@{ 
if (!WebSecurity.Initialized) 
{ 
    WebSecurity.InitializeDatabaseConnection("dbContext", "Users", "Id", "Login", autoCreateTables: false); 
} 
} 
3

Вы должны добавить код в Global.aspx.cs внутри protected void Application_Start() и должен появиться в верхней перед любыми другими регистраций. Таким образом, он всегда будет Initialized перед другими операциями.

if (!WebSecurity.Initialized) 
      WebSecurity.InitializeDatabaseConnection("DefaultConnection", 
"UserProfile", "UserId", "UserName", autoCreateTables: true); 
Смежные вопросы