我一直在使用 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。
对于 ASP.NET 成员资格提供者和实体框架中的角色实现,需要在 EDMX 文件中导入 ASPNETDB(成员资格数据库)的所有视图。例如 vw_aspnet_MembershipUsers、vw_aspnet_Roles、vw_aspnet_UsersInRoles、vw_aspnet_Users 等...
然后会员资格将通过 EF 运行。因此,您可以使用以下功能提供 GUI。
这是控制器代码。例如
// 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 是默认设置”。选择您想要的,然后选择下一个。
将显示一个带有“Select Sql Server Database”的窗口现在我们需要选择我们的 sql server 数据库。这里需要设置服务器、认证类型和数据库。如果选择默认名称“aspnetDb.mdf”将被选中。如果要修改现有数据库,请选择该数据库。
5.现在将显示一个确认,标题为“确认您的设置”。现在检查服务器名称和数据库名称,然后单击下一步。
在上述步骤中要小心,您需要选择现有数据库,一些表(11+)、视图、成员资格和角色的存储过程将被添加到现有数据库中......
享受它....谢谢...
MVC3 有 gui 成员管理系统,您可以查看或添加到您的项目中。
你可以和他们一起玩,看看他们是如何工作的。一旦您知道在哪里寻找并且您可以创建自己的,这很简单。
Membership Class和MembershipUser Class包含所有用户信息。例如,要取消批准用户,您可以执行以下操作:
MembershipUser user = Membership.GetUser("userName");
user.IsApproved = false;
Membership.UpdateUser(user);
如果要删除用户,可以使用Membership.DeleteUser("userName");
.
Roles 类具有所有与角色相关的信息。LikeRoles.GetUsersInRole("roleName")
将返回角色中所有用户的列表roleName
。Roles.CreateRole("roleName");
将创建一个角色,Roles.DeleteRole("roleName");
并将删除一个角色。
如果您需要的不仅仅是默认值,您可以查看实现成员资格提供程序。
就拥有两个数据库而言,这不是必需的。Aspnet_regsql
您可以使用该工具将所有 ASP.NET 表、存储过程等添加到您的数据库中。查看使用 Aspnet_regsql.exe 安装数据库。这将允许您只有一个数据库,因此您可以删除您的 asp.net 连接字符串,Web.Config
然后更改AspNetSqlMembershipProvider
AspNetSqlProfileProvider
AspNetSqlRoleProvider
可能还有其他人,以使用连接字符串到您的主数据库。