首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Asp.Net网站管理员工具获得ASP.NET会员资格

通过Asp.Net网站管理员工具获得ASP.NET会员资格
EN

Stack Overflow用户
提问于 2010-03-11 08:36:10
回答 4查看 8.4K关注 0票数 4

我用aspnet_regsql创建了一个数据库,数据库是在sever 2008中创建的,而不是在我的项目中的数据文件夹中创建的(我需要手动将它移动到文件夹中吗?)

接下来,在网站管理工具中,我转到provider部分并单击don按钮。

我有个错误:

无法建立到数据库的连接。如果尚未创建Server数据库,请退出网站管理工具,使用aspnet_regsql命令行实用程序创建和配置数据库,然后返回到该工具以设置提供程序。

也许我需要在web.config中设置一些东西,比如成员设置或连接字符串(或者ASP.NET网站管理员工具应该为我创建这些设置)?

更新:

也许发生这种情况是因为我使用的是server 2008完整而不是快递?

更新2:

在网站管理工具中将成员部分和连接字符串设置到我的aspnetdb数据库后,我打开了安全性->安全设置向导>定义角色(第4阶段),我得到了以下错误:

遇到了一个错误。请返回上一页,然后再试一次。

以下消息可能有助于诊断问题:无法连接到Server数据库。在System.Web.Administration.WebAdminPage.CallWebAdminHelperMethod(Boolean isMembership,字符串methodName,Object[]参数,( ASP.security_wizard_wizardpermission_ascx.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean,Boolean )

EN

回答 4

Stack Overflow用户

发布于 2010-03-11 10:03:38

是的,您需要修改web.config中的连接字符串。

在web.config中,您可能会在<membership>元素中看到类似的内容:

代码语言:javascript
复制
<membership>
  <providers>
    <clear />
    <add connectionStringName="LocalSqlServer" 
         name="AspNetSqlMembershipProvider"
         [...]
         type="System.Web.Security.SqlMembershipProvider, 
               System.Web, 
               Version=2.0.0.0,
               Culture=neutral,
               PublicKeyToken=b03f5f7f11d50a3a" />
  </providers>
</membership>

connectionStringName属性告诉框架在<connectionStrings>元素中查找一个名为"LocalSqlServer“的连接字符串--这可能不是在web.config中定义的,因为它可以从.Net框架核心配置目录中的Machine.Config继承。

您可能应该为连接字符串选择一个新的名称,并更新您的成员、角色和配置文件(如果您正在使用它们)提供程序来使用新名称。

然后,在<connectionStrings>元素中有以下内容:

代码语言:javascript
复制
<connectionStrings>
  <remove name="LocalSqlServer" />
  <add name="MyConnectionString"
       connectionString="Data Source=[ServerName];Initial Catalog=[DatabaseName];Integrated Security=True"
       providerName="System.Data.SqlClient" />
</connectionStrings>

调整值以适应您的系统--我建议集成安全性而不是在web.config中存储数据库登录名和密码,但是YMMV (例如,在我的共享主机上,我不能使用Integrated,所以必须提供用户/传递详细信息)。

网站管理工具也将遵守这些连接字符串。

编辑回复评论

您已经成功登录了吗?还是创建了一个用户?我只想排除您配置了连接字符串并正常工作的可能性?

您是否也配置并打开了角色提供程序?您更新了其中的"connectionStringName“属性吗?

注意,和前面一样,machine.config为您指定了一个默认角色提供程序,它试图指向本地SqlExpress实例--这可能是连接错误的来源。

代码语言:javascript
复制
<!-- Note enabled="true" - you need to turn this one on! -->
<roleManager enabled="true">
  <providers>
    <clear />
    <add connectionStringName="MyConnectionString"
         [...]
         type="System.Web.Security.SqlRoleProvider, 
               System.Web,
               Version=2.0.0.0,
               Culture=neutral,
               PublicKeyToken=b03f5f7f11d50a3a" />
  </providers>
</roleManager>

要了解更多关于被省略的属性的详细信息,我推荐文档:

  • roleManager元素
  • 成员资格提供程序元素

一旦您配置好它,它就应该都能工作了。

如果您无法创建用户/登录,我将检查:

  1. 连接字符串--确保名称匹配,确保data source与服务器实例匹配(不一定只是计算机的名称,可能类似于"MachineName\SqlServer")。
  2. 如果您使用的是集成安全性,则需要确保您的站点运行的帐户在数据库中的适当权限下运行:您应该发现您的数据库中有许多角色(从aspnet_开始),以确保您可以创建用户(如果您有登记表,就需要创建用户),您应该将帐户添加到aspnet_XXXX_FullAccess角色中(每个角色用于成员身份、个性化、配置文件和角色)。
票数 5
EN

Stack Overflow用户

发布于 2010-03-11 08:58:34

打开sql management并打开主数据库,进行新的查询并键入

代码语言:javascript
复制
sp_configure 'user instances enabled','1'

执行此命令,然后键入

代码语言:javascript
复制
reconfigure 

并执行此操作,以使更改生效。有关sp_configure的更多信息,如果希望列出所有配置,可以阅读http://msdn2.microsoft.com/en-us/library/ms188787.aspx,然后在没有任何参数的情况下执行sp_configure。

票数 0
EN

Stack Overflow用户

发布于 2014-04-14 11:55:00

按照以下步骤将会员身份正确地整合到您的网站(如果您看到上面的错误,如

"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.")

步骤1:

从计算机上的C:\windows\Microsoft.NET\Framework\v2.0.50727文件夹中运行aspnet_regsql.exe实用程序。选择或双击aspnet_regsql.exe实用程序将打开向导,如下所示。

选择上述窗口上的Next按钮将打开下一个窗口,您可以在该窗口中为应用程序服务配置Server或从现有数据库中删除应用程序服务信息。

步骤2:

选择“为应用程序服务配置Server”单选按钮以安装新数据库,然后选择“下一步”按钮。

步骤3

输入服务器名称,如下所示。请注意,可以将应用程序服务数据库名更改为所需的名称(默认情况下为aspnetdb)。(或)您可以选择Server身份验证(需要用户名、密码、相应的数据库名称)。

请注意,我将数据库命名为ASPNETServices

步骤4:

选择“下一步”按钮,确认您的设置是否正确,以进一步安装(如下图所示),并选择“下一步”按钮。

步骤5

在上面的窗口上选择Next按钮,在成功安装了用于ASP.NET.Finally的应用程序服务数据库之后,您将按下确认窗口,按Finish。

步骤6

您将看到已安装的ASPNET数据库可以在ASP.NET应用程序中使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2423515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档