0

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

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

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

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

感谢阅读,~~科尔腾

4

1 回答 1

1

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

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

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

<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>
于 2009-05-11T02:50:57.237 回答