我一直在使用ASP.NET成员资格提供程序,它的默认方式已经能够很好地满足我的基本需求。我意识到一件事情,它会向数据库安装一堆存储过程等等。
是否有ASP.NET成员资格的EF实现?或者将来会有吗?
我即将开始一个项目,需要通过一些GUI扩展成员资格提供程序的角色和授权功能。
此外,每次使用时,我在web.config中有两个连接字符串,一个用于DbContext,另一个特别用于成员资格提供程序的应用服务。为什么我不能只有一个连接字符串呢?
我一直在使用ASP.NET成员资格提供程序,它的默认方式已经能够很好地满足我的基本需求。我意识到一件事情,它会向数据库安装一堆存储过程等等。
是否有ASP.NET成员资格的EF实现?或者将来会有吗?
我即将开始一个项目,需要通过一些GUI扩展成员资格提供程序的角色和授权功能。
此外,每次使用时,我在web.config中有两个连接字符串,一个用于DbContext,另一个特别用于成员资格提供程序的应用服务。为什么我不能只有一个连接字符串呢?
你需要的是通用提供程序:http://nuget.org/packages/Microsoft.AspNet.Providers.Core
这些是使用 EF Code First 5 实现的,我们将在确保一切正常运行后将内部 DBContexts 公开。
// GET: /Membership/Edit/5
public ActionResult Edit(Guid id)
{
var recordToEdit = (from r in _db.vw_aspnet_Users where r.UserId == id select r).First();
return View(recordToEdit);
}
public ActionResult Index()
{
return View(_db.vw_aspnet_MembershipUsers.ToList());
}
现在,如何将ASPNETDB合并到现有数据库中,以便在web.config中只有一个连接字符串。(您的问题:为什么我不能只有一个?)
以下是实现此目标的步骤。
ASPNETDB.MDF是成员资格提供程序数据库,用于从数据库中存储和检索成员资格数据,下面我们将看到如何创建成员资格提供程序数据库。用于创建Aspnetdb.mdf的命令是ASPNET_RegSQL.EXE
1.开始->程序->Microsoft Visual Studio 2005->Visual Studio工具->Visual Studio 2005命令提示符。在Visual Studio 2005命令提示符中键入ASPNET_RegSQL.EXE
将显示一个标题为“欢迎使用Asp.Net Sql Server向导”的向导。这里需要点击下一步。
接下来将显示一个标题为“选择安装选项”的向导。现在我们需要选择“为应用程序配置SQL Server”作为默认的设置选项。选择您想要的选项,然后点击下一步。
现在将显示一个标题为“选择SQL Server数据库”的窗口。我们需要选择我们的SQL Server数据库。这里需要设置服务器、身份验证类型和数据库。如果选择默认名称“aspnetDb.mdf”,则将选择该数据库。如果您想修改现有数据库,请选择该数据库。
5.现在将显示一个标题为“确认您的设置”的确认窗口。现在检查服务器名称和数据库名称,然后点击下一步。
在上述步骤中,请注意选择您现有的数据库,会向您现有的数据库添加一些表(11个以上)、视图、Membership和Roles的存储过程......
享受它吧....谢谢...
你可以查看或添加到你的项目中的MVC3 gui会员管理系统。
你可以尝试使用它们并了解它们的工作原理。一旦你知道在哪里查找,就很简单,你也可以创建自己的系统。
Membership Class和MembershipUser Class包含所有用户信息。例如,要取消批准某个用户,可以执行以下操作:
MembershipUser user = Membership.GetUser("userName");
user.IsApproved = false;
Membership.UpdateUser(user);
如果您想删除用户,可以使用Membership.DeleteUser("userName");
。
Roles Class包含所有与角色相关的信息。例如,Roles.GetUsersInRole("roleName")
将返回角色roleName
中所有用户的列表。Roles.CreateRole("roleName");
将创建一个角色,而Roles.DeleteRole("roleName");
将删除一个角色。
如果您需要更多的功能,可以查看实现成员资格提供程序。
关于使用两个数据库的问题,这并非必要。您可以使用Aspnet_regsql
工具将所有ASP.NET表、存储过程等添加到您的数据库中。请参阅使用Aspnet_regsql.exe安装数据库。这将允许您只有一个数据库,因此您可以在Web.Config
中删除asp.net连接字符串,然后更改AspNetSqlMembershipProvider
AspNetSqlProfileProvider
AspNetSqlRoleProvider
和其他一些内容,以使用您主数据库的连接字符串。