我正在处理一个asp.net web项目,发现我的角色,并存储在.mdf文件中。在阅读尝试通过SQL Management Studio(使用SQLExpress 2005)连接到它时,我发现了这篇文章:
https://help.maximumasp.com/SmarterTicket/Customer/KBArticle.aspx?articleid=878
现在,我的问题是 - 我应该这样做吗?我将在完成后将网站上传到托管服务提供商,并希望流程尽可能顺利。
通常只是将MDF文件与网站一起移动到服务器,还是将信息存储在SQL Server本身中更好?我已经为网站安装了一个数据库...我可以将asp.net的角色信息集成到我自己的数据库中,这样我只需要管理一个数据库吗?
感谢阅读, ~~ Kolten
答案 0 :(得分: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>