【问题标题】:ASP.NET SQL Server Setup WizardASP.NET SQL Server 安装向导
【发布时间】:2010-10-25 04:42:37
【问题描述】:

我有一个我正在处理的 asp.net Web 项目,并发现我的角色等存储在一个 .mdf 文件中。在阅读尝试通过 SQL Management Studio(使用 SQLExpress 2005)连接它时,我发现了这篇文章:

https://help.maximumasp.com/SmarterTicket/Customer/KBArticle.aspx?articleid=878

现在,我的问题是 - 我应该这样做吗?我将在完成后将网站上传到托管服务提供商,并希望该过程尽可能顺利。

通常只是将 MDF 文件与网站一起移动到服务器,还是将信息存储在 SQL Server 本身中更好?我已经有一个用于网站的数据库...我可以将 asp.net 的角色信息集成到我自己的数据库中,以便我只需要管理一个数据库吗?

感谢阅读, ~~科尔腾

【问题讨论】:

    标签: asp.net sql-server-express


    【解决方案1】:

    使用 ASP.NET 成员资格提供程序是管理用户凭据的有效方式。上传 MDF 文件会带来风险,即有人可能会获取您的 MDF 文件,然后获取您的所有用户详细信息。将其存储在托管环境提供的 SQL 数据库中通常会更安全,前提是连接详细信息不受影响,并且您不会将自己暴露于 SQL 注入攻击,并且您的提供商也不会暴露于SQL 注入攻击。

    只要成员资格表没有名称冲突,成员资格信息就可以与应用程序的其余部分存储在同一个数据库中。您可以通过在 aspnet_regsql 命令行上指定数据库连接详细信息来创建所需的表。

    在您的 web.config 文件中,您需要修改 roleManager 和成员资格提供程序,以便您可以指定要使用的连接字符串。即

    <system.web>
        <roleManager enabled="true" defaultProvider="AspNetSqlRoleProvider">
          <providers>
            <remove name="AspNetSqlRoleProvider" />
            <add name="AspNetSqlRoleProvider" connectionStringName="MembershipSQLConnectionString"
                 applicationName="/"
                 type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
          </providers>
        </roleManager>
    </system.web>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      相关资源
      最近更新 更多