7

我一直在使用 ASP.NET 会员提供程序,它可以很好地满足我的基本目的。我意识到的一件事是,它将一堆存储过程等安装到数据库中。

是否有 ASP.NET 成员的 EF 实现?还是会有?

我有一个即将到来的项目,我需要通过一些 GUI 扩展成员资格提供者的功能,并提供角色和授权。

此外,每次我使用它时,我的 web.config 中有两个连接字符串,一个用于 DbContext,一个用于应用程序服务,特别是用于成员资格提供者。为什么我不能只有一个?

4

3 回答 3

2

通用提供程序是您正在寻找的:http: //nuget.org/packages/Microsoft.AspNet.Providers.Core

这些是在内部使用 EF Code First 5 实现的,一旦我们确保一切顺利,我们将公开内部 DBContexts。

于 2012-09-02T10:55:49.340 回答
0

对于 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

  1. 将显示一个标题为“欢迎使用 Asp.Net Sql Server 向导”的向导。这里需要点击下一步

  2. 接下来将显示带有“选择设置选项”的向导。现在我们需要选择设置选项“为应用程序配置 sql server 是默认设置”。选择您想要的,然后选择下一个。

  3. 将显示一个带有“Select Sql Server Database”的窗口现在我们需要选择我们的 sql server 数据库。这里需要设置服务器、认证类型和数据库。如果选择默认名称“aspnetDb.mdf”将被选中。如果要修改现有数据库,请选择该数据库。

5.现在将显示一个确认,标题为“确认您的设置”。现在检查服务器名称和数据库名称,然后单击下一步。

  1. 将显示一个带有“已创建或修改数据库”的窗口。现在点击完成

在上述步骤中要小心,您需要选择现有数据库,一些表(11+)、视图、成员资格和角色的存储过程将被添加到现有数据库中......

享受它....谢谢...

于 2012-09-01T05:24:50.877 回答
0

MVC3 有 gui 成员管理系统,您可以查看或添加到您的项目中。

你可以和他们一起玩,看看他们是如何工作的。一旦您知道在哪里寻找并且您可以创建自己的,这很简单。

Membership Class和MembershipUser Class包含所有用户信息。例如,要取消批准用户,您可以执行以下操作:

MembershipUser user = Membership.GetUser("userName");
user.IsApproved = false;
Membership.UpdateUser(user);

如果要删除用户,可以使用Membership.DeleteUser("userName");.

Roles 类具有所有与角色相关的信息。LikeRoles.GetUsersInRole("roleName")将返回角色中所有用户的列表roleNameRoles.CreateRole("roleName");将创建一个角色,Roles.DeleteRole("roleName");并将删除一个角色。

如果您需要的不仅仅是默认值,您可以查看实现成员资格提供程序

就拥有两个数据库而言,这不是必需的。Aspnet_regsql您可以使用该工具将所有 ASP.NET 表、存储过程等添加到您的数据库中。查看使用 Aspnet_regsql.exe 安装数据库。这将允许您只有一个数据库,因此您可以删除您的 asp.net 连接字符串,Web.Config然后更改AspNetSqlMembershipProvider AspNetSqlProfileProvider AspNetSqlRoleProvider可能还有其他人,以使用连接字符串到您的主数据库。

于 2012-09-01T09:16:56.543 回答