获得自己的EF 4.1 Code First类以使用.NET Membership

时间:2011-09-27 20:45:56

标签: asp.net-mvc-3 asp.net-membership entity-framework-4.1 ef-code-first

我正在开发一个使用EF 4.1 Code First和MVC3构建的简单Web应用程序。我的域模型位于MVC3项目的 外部 项目中。

我已经到了我的网络应用程序或多或少完整的阶段。但是现在,我的应用程序没有任何形式的授权或身份验证。因此,普通用户可以访问只有管理员可以访问的操作和控制器。

我的问题是,如何让我的Web应用程序使用.NET成员资格?因为我知道.NET Membership有许多自己的数据库表!

我的知识相当有限,因此非常感谢任何明确,易于理解的回复。

成立会员资格后,我知道如何将身份验证和授权应用于动作和控制器。

谢谢。

2 个答案:

答案 0 :(得分:2)

进入你的C:\ Windows \ Microsoft.NET \ Framework \ v2.xx或v4.xx \并执行aspnet_regsql,这将启动一个向导,允许您选择数据库,它将添加存储的过程和表允许成员资格运作。

然后运行ASP.NET配置向导(解决方案资源管理器顶部的小工具箱图标),然后配置您的角色和帐户。请参阅this page并跳至配置网站以获取成员资格和角色部分。

答案 1 :(得分:0)

ASP.Net会员资格实际上有点令人感到有趣且令人沮丧。在Windows \ Microsoft.net \ Framework文件夹中运行名为aspnet_regsql.exe的工具,该工具生成所有必要的表以使其运行。接下来转到Web.config文件。如果您从基本的ASP.NET MVC 3模板开始,那么您应该在名称“ApplicationServices”下有一个<connectionStrings>条目。将其更改为数据库连接字符串。这是会员提供商用来挂钩所有内容的。如果您查看配置文件的其余部分,则应该有<authentication><membership><profile><roleManager>的部分。这些涉及ASP.Net用户管理分解的各个部分和设置。

此时应该连接所有东西。如果在解决方案资源管理器中选择项目,则应显示一个小红锤图标。这是ASP.NET配置管理器。您可以使用它来设置不同的配置文件并管理不同的用户。

现在这些东西根本不会连接到你的EF4.1代码。相反,您可以通过静态类MembershipRoles与您的会员提供商进行互动。如果你看一下默认的ASP.Net MVC 3互联网应用程序模板上的AccountController,它会让你知道它是如何工作的。

在使用这些东西几个月之后,我发现基本上写自己更容易了。将事物捆绑在一起最终会变得非常痛苦,会员提供商为您提供的许多附加功能对于小型应用程序来说是不必要的。