1

在多次尝试在 ASP.NET 项目中使用角色管理之后,我需要帮助。

我有一个本地 SQL Server 设置,这里是我的web.config文件的一些部分......

<connectionStrings>
   <add name="DefaultConnection" 
        providerName="System.Data.SqlClient" 
        connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-WebSite2-20130703132914;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-WebSite2-20130703132914.mdf"/>
   <add name="SqlRoleManagerConnection" 
        connectionString="Data Source=my-pc;&#xA;Initial Catalog=aspnetdb;Integrated Security=SSPI;"/>
</connectionStrings>

<roleManager enabled="true">
  <providers>
    <add name="DefaultRoleProvider" 
         connectionStringName="DefaultConnection" applicationName="/"   
         type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add name="SqlRoleManager" 
         connectionStringName="SqlRoleManagerConnection" applicationName="/" 
         type="System.Web.Security.SqlRoleProvider"/>
  </providers>
</roleManager>

该应用程序称为网站。

aspnetdb已在本地数据库上设置好并准备好管理角色...

当我在 Visual Studio 2012 Express 中转到 ASP.NET 配置选项时,在安全性下,它告诉我它无法连接到数据库。

我猜问题出在我的 web.config 文件中,但我不确定......任何帮助将不胜感激!

4

2 回答 2

1

你需要defaultProvider属性。它说明您将默认使用哪个提供程序。

<roleManager enabled="true" cacheRolesInCookie="false" 
defaultProvider="DefaultRoleProvider">
  <providers>
    <clear/>
    <add connectionStringName="DefaultConnection" applicationName="/" 
name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

    <add connectionStringName="SqlRoleManagerConnection" applicationName="/" 
name="SqlRoleManager" type="System.Web.Security.SqlRoleProvider"/>
  </providers>
</roleManager>
于 2013-07-03T21:21:23.557 回答
0

不要配置两个 connectionStrings 和两个提供者。如果必须,请配置哪个是默认提供程序。

阅读更多:http: //msdn.microsoft.com/en-us/library/ff647401.aspx#paght000013_step2

于 2013-07-03T21:01:34.293 回答