我们计划为我们的应用程序使用标准的ASP.NET用户身份验证。但是,默认情况下,这要求我们将我们的用户数据库放在App_Data文件夹中的Web服务器上。
这对我们来说通常是大禁忌 - 我们的数据库都在防火墙后面,所有访问都是通过WCF服务层完成的。
如果数据库位于不同的服务器上,但可以从Web服务器直接访问,那么这仍然违反了我们通常的体系结构规则。
我们应该担心我们的用户数据库是否存在于我们的网络服务器上? ASP.NET是否提供了开箱即用的替代方案?
注意:我们使用的是.NET 3.5和SQL Server 2005
答案 0 :(得分:6)
您可以在任何SQL Server数据库中安装必要的db表等。
使用C:\ WINDOWS \ Microsoft.NET \ Framework .......中的aspnet_regsql.exe向导来设置目标数据库。
然后只需更新web.config中提供程序配置中的连接字符串。
答案 1 :(得分:1)
是和是。
如果您需要迁移到多个Web服务器,则不应在其中一台服务器上拥有用户数据。
有多个要执行此操作,但请查看此链接以获取有关MSDN How To: Use Forms Authentication with SQL Server in ASP.NET 2.0
答案 2 :(得分:1)
您可以通过覆盖以下抽象类的方法和属性来创建自己的自定义成员资格提供程序:public abstract class MembershipProvider。一旦覆盖它们,您就可以使用任何有效的数据源来验证用户身份。例如,您可以使用MYSQL,SQL服务器甚至XML文件来授权您的用户。这些提供商模型非常酷。
答案 3 :(得分:0)
是的,你应该担心。不,没有开箱即用的解决方案。 ASP.NET仅附带SQL成员资格提供程序和Active Directory成员资格提供程序(reference)。您必须使用自定义成员资格提供程序来提供您的功能。