我是ASP.NET MVC4的新手。我正在创建一个空的MVC4项目模板,并尝试将ASP.NET成员资格提供程序添加到其中,但我不知道如何才能这样做。我正在谷歌搜索,但所有演示都使用互联网应用程序项目模板。
我知道这个问题并不好,但我已经花了两天时间。
请为此目的提供一些建议或教程。
更新
根据Nesim Razon的建议,我将表单身份验证部分从MVC4 Web应用程序(Internet应用程序模板)复制并粘贴到我的空项目中。但现在我得到一个异常要调用此方法,“Membership.Provider”属性必须是“ExtendedMembershipProvider”的实例。
[InitializeSimpleMembership]
public class HomeController : Controller
{
public ActionResult Index()
{
WebSecurity.CreateUserAndAccount("Name", "Password"); // Exception is thrown from there.
return View();
}
}
我还在Web.config文件中添加了以下指令:
<add key="enableSimpleMembership" value="true" />
答案 0 :(得分:31)
您需要添加以下Nuget包:
Microsoft.AspNet.WebPages.OAuth
注意:此程序包将自动为您安装所有必需的依赖项。这是安装的所有nuget包的详细列表:
添加对
的引用现在为了测试它,将以下内容添加到web.config文件中(在system.web
下):
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
添加以下连接字符串
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-UnitTestQueries.UI-20121105001038;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-UnitTestQueries.UI-20121105001038.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
我所做的就是从互联网模板中复制控制器,模型,过滤器和视图,只需修改命名空间等内容,直到你开始运行
这是结果(没有样式)
登录前
<强>注册强>
已登录
答案 1 :(得分:2)
查看SimpleMembership, Membership Providers, Universal Providers and the new ASP.NET 4.5 Web Forms and ASP.NET MVC 4 templates以获取有关在空模板中设置SimpleMembership所需内容的信息。
你我也想查看Scott Allen的非常好的帖子:
Perils of the MVC4 AccountController
Build Your Own Membership System For ASP.NET MVC - Part I
和
答案 2 :(得分:0)
如果您想使用Universal Providers而不是MVC 4 Internet模板中包含的Simple Membership,您可以使用 Mobile template 创建一个新的MVC 4项目并复制Account controller + views并更新web.config有正确的connectionString和Forms Auth部分,你应该很高兴。
答案 3 :(得分:0)
ASP NET MVC 5 Web应用程序中的简单成员
https://www.youtube.com/watch?v=BsKcVbsMn6w
项目开发后在项目中实施用户身份验证非常困难。在本视频中,我演示了如何在一开始就未实现身份验证的项目中有效利用Microsoft Simple Membership功能。借助此功能,您可以在项目的任何阶段实施身份验证功能。