【问题标题】:Assigning ASP.NET user/forms authentication database分配 ASP.NET 用户/表单身份验证数据库
【发布时间】:2013-02-28 20:20:31
【问题描述】:

ASP.NET 新手。

在 Visual Studio 2010 Ultimate 中,我创建了一个新的 ASP.Net 3.5 网站,然后使用拖放到页面上的工具箱控件添加表单身份验证。在我的测试环境中使用这些控件创建新用户后,在项目的 App_Data 文件夹中创建了一个名为 ASPNETDB.MDF 的数据库。

我还对这个数据库进行了修改,向它添加了我使用连接字符串从网站上的 Web 表单中以代码访问的表格:

Data Source=.\SQLEXPRESS;AttachDbFilename=C|DataDirectory|\ASPNETDB.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True

现在我已准备好将网站放在我的虚拟主机 1and1.com 上。我在 1and1 控制面板中创建了一个数据库。 1and1 帮助页面说使用如下连接字符串连接到 1and1 托管的 SQL Server 数据库:

server=mydbHostName.db.1and1.com; initial catalog=mydbName;uid=mydbUser;pwd=mydbPassword

我已经测试了这个连接并且可以使用这个连接字符串创建和访问表。

我的问题是如何告诉表单身份验证在 1and1 服务器上使用这个新数据库?

【问题讨论】:

    标签: asp.net sql-server visual-studio-2010 visual-studio webforms


    【解决方案1】:

    这一切都在您的 web.config 文件中。您应该会看到如下内容:

    <membership defaultProvider="DefaultMembershipProvider">
          <providers>
            <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" <snip> applicationName="/" />
          </providers>
        </membership>
    

    connectionStringName 指向 ConnectionStrings 部分中定义的连接字符串 - 只需确保更改 Membership Provider 中的属性以匹配您用于连接字符串的名称(反之亦然)。

    【讨论】:

    • 谢谢。为了完成这项工作,我需要将数据库导入(或创建)到 1and1 服务器中。是否有捷径可寻? 1and1 可以接受 .bak 文件。我尝试创建一个 SQL 脚本以在 1and1 服务器上创建架构,但遇到了难以追踪的“排序冲突”错误。同样,有没有一种简单的方法可以做到这一点?
    • 终于让它工作了。对于任何其他尝试将 ASP 表单身份验证或成员数据库架构放到 1and1 服务器上的人,首先运行 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regsql.exe -S mydbHostName.db.1and1.com -sqlexportonly 脚本.sql -A all -d mydbName -U mydbUserID -P mydbPassword 用您的信息代替“mydb ...”参数。然后打开它创建的 script.sql 文件。然后将其内容复制并粘贴到数据库工具中的查询分析器中,然后点击提交,等待一分钟左右就完成了。
    【解决方案2】:

    好吧,这确实是一个不同的问题,但无论如何 - 您可以通过 SSMS 使用 BACKUP 命令创建数据库备份,或者右键单击 SSMS 中的数据库并从任务菜单中选择备份 - 这将创建您的 . bak 文件,您可以使用 FTP 上传到 1and1。然后进入他们的 SQL 管理器,或使用 SSMS 连接到您的 SQL Server 实例(我不是 1and1 用户,但大多数主机允许您使用托管帐户中的 SQL Server 凭据进行连接),并从 .bak 恢复数据库文件。如果不检查您的脚本和 1and1 SQL Server 配置,我无法告诉您为什么您有排序规则错误 - 可能是 SQLExpress(这是 ASP.Net 配置文件管理的默认设置)和正在运行的任何版本的 SQL Server 1and1 之间的差异.在任何情况下,如果不通过其基于 Web 的工具,您可能没有在 1and1 服务器上创建数据库的权限。将数据库连接到 1and1 服务器后,您的应用程序应使用它们提供的连接字符串进行连接 - 只需确保您的服务器位置和数据库名称正确。

    【讨论】:

      猜你喜欢
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 2017-09-28
      • 1970-01-01
      • 2010-09-30
      相关资源
      最近更新 更多