无法连接到ASP.NET Web Admin Tool

时间:2017-07-31 19:01:33

标签: c# sql asp.net database asp.net-membership

就像标题所说我试图为我正在制作的网站制作一些角色。

每当我进入安全选项卡时,都会显示标题中的错误。

我已使用 aspnet_regsql 向导为此目的配置数据库。数据库的创建成功,但我仍然收到错误。

到目前为止,这是 webconfig

<?xml version="1.0"?>
<configuration>
 <configSections>
   <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
   </sectionGroup>

 </configSections>
 <entityFramework>
  <contexts>
   <context type="ContosoUniversity.DAL.SchoolContext, ContosoUniversity">
     <databaseInitializer type="ContosoUniversity.DAL.SchoolInitializer, ContosoUniversity" />
   </context>
  </contexts>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
   <parameters>
     <parameter value="v11.0" />
   </parameters>
  </defaultConnectionFactory>
  <providers>
    <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
  </providers>
 </entityFramework>
  <connectionStrings>
    <add name="SchoolContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

 <system.web.webPages.razor>
   <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
     <add namespace="System.Web.Mvc" />
     <add namespace="System.Web.Mvc.Ajax" />
     <add namespace="System.Web.Mvc.Html" />
     <add namespace="System.Web.Optimization"/>
     <add namespace="System.Web.Routing" />
     <add namespace="TESTMVC" />
    </namespaces>
  </pages>
 </system.web.webPages.razor>


 <system.webServer>
  <handlers>
   <remove name="BlockViewHandler"/>
   <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
  </handlers>
 </system.webServer>

  <system.web>
   <compilation>
    <assemblies>
     <add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
   </compilation>

 </system.web>
</configuration>

我知道我可能在这个xml中遗漏了一些会员标记? 任何人都可以帮我修复webconfig文件吗?

此连接字符串用于显示此数据库中某些内容的页面。在这个save(localdb)\ MSSQLLocalDB上,我有向导aspnet_regsql创建的aspnetdb。

<connectionStrings>
  <add name="SchoolContext" connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=ContosoUniversity1;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>

2 个答案:

答案 0 :(得分:1)

根据您的评论,您是ASP.NET成员资格的新手。您提到的ASP.Net会员资格超过10至15年。在那些年里,微软已经取代了其他几个。

这是历史 -

  1. ASP.Net Membership Provider (使用aspnet_regsql生成表格)
  2. ASP.NET Universal Providers
  3. 简单会员提供者
  4. ASP.NET标识(最新版本)
  5. 由于您也是ASP.Net Membership的新手,我个人建议使用ASP.Net Identity。这是免费的ASP.NET MVC 5 Fundamentals course by Scott Allen

答案 1 :(得分:0)

使用Integrated Security=SSPI,我相信您将连接到SQL服务器,因为该网站运行的任何帐户,可能是一个apppool身份帐户。您应该在SQL中创建用户并显式连接这些凭据,或者添加应用程序池标识以获得权限:

对于本地SQL Server(来自https://blogs.msdn.microsoft.com/ericparvin/2015/04/14/how-to-add-the-applicationpoolidentity-to-a-sql-server-login/):

  • 打开SQL Server Management Studio(SSMS)并连接到SQL Server。 打开服务器级别的Security文件夹,而不是数据库的安全性文件夹。
  • 右键单击登录名并选择新登录。
  • 对于登录,键入IIS APPPOOL \ AppPoolName并且不要单击“搜索”并选择“确定”(如果执行搜索,它将解析为具有ServerName \ AppPool名称的帐户,SQL将无法解析帐户的SID,因为它是虚拟的)
  • 选择帐户的默认值,然后选择确定以关闭对话框