简单的Asp.net自定义会员提供商

时间:2011-07-13 21:23:44

标签: asp.net authentication custom-membershipprovider

过去我使用默认的SQL Membership提供程序来保护网站。这很好用,但需要创建ASP_Authentication数据库(使用reg_sql工具)和几十个表/存储过程等。

我现在有一个简单的网站,每月10英镑的主机。我得到一个SQL Server实例作为交易的一部分,但没有能力通过SQL Management Studio连接到它。我无法运行reg_sql工具,甚至无法从以前生成的数据库中获取脚本并运行它。

实际上,ASP_Authentication数据库对于我需要的东西来说太过分了。我只是一个简单的用户名/登录商店,我可以进行身份​​验证。我不需要小组/角色等。

有没有人知道一篇好的博客文章或类似文章描述了如何做到这一点?

非常感谢

罗布。

3 个答案:

答案 0 :(得分:0)

如果您只是想要一个简单的登录机制,我建议您坚持使用sql成员资格。您不必使用角色或任何其他功能,如秘密问题/答案。

通过命令行

您可以在本地使用aspnet_regsql工具来生成sql脚本。您必须能够访问某种用于管理数据库的工具,所以这对您来说可能就足够了吗?

我写了一篇关于通过命令行使用此工具的文章。我还解决了只添加你真正想要使用的表的问题(不需要个性化,Web部件等表)。

这篇文章在我的博客上:

它没有介绍如何将sql脚本转储到文件中,但它确实提供了一个提示(它表示你可以使用 - ?来查看所有命令行参数)。打开命令窗口(start | run | cmd | enter)并键入:

asp.net v2:

cd C:\Windows\Microsoft.NET\Framework\v2.0.50727\
aspnet_regsql.exe -sqlexportonly C:\aspnetmembership.sql -A mrp

asp.net v4:

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
aspnet_regsql.exe -sqlexportonly C:\aspnetmembership.sql -A mrp

如果v4不起作用,请查看下一个,然后使用最新的v4文件夹。

然后,您将在C:驱动器的根目录中找到一个名为aspnetmembership.sql的文件,您可以将其用于它们提供的任何数据库管理。

通过代码

设置表格还有另一种选择,社区通常不太了解这些表格;您可以通过System.Web.Management命名空间中的方法实际执行此操作。我在Peter Bromberg的帖子中学到了这种技巧,并把它隐藏起来。它是一个简单的衬垫:

Management.SqlServices.Install("server", "USERNAME", "PASSWORD", "databasename", SqlFeatures.All)

您可以阅读余下的his advice here

自定义成员资格提供程序

要实际回答您的问题,网上有大量文章介绍如何创建自定义会员提供商:

如果您决定“推销自己的”,那么请坚持计划并使用会员提供者框架,而不是从头开始编写自己的。

答案 1 :(得分:0)

不确定您是否使用ASP.NET WebForms或MVC,但我创建了一个NuGet包以在ASP.NET MVC3中启用SimpleMembership:http://nuget.org/List/Packages/SimpleMembership.Mvc3

这是ASP.NET WebPages / WebMatrix的SimpleMembership API。非常简单和功能齐全。

它也应该与ASP.NET WebForms一起使用。

答案 2 :(得分:0)