我有一个ASP.NET MVC 4 Web应用程序" APP1"其中使用DB First方法实现了Entity Framework。我现在想要为其添加身份验证,包括电子邮件和角色,如果我做对了,那么最先进的方法就是使用身份提供程序。我尝试的是制作一个新的mvc 4 Web应用程序" APP2"并将自动生成的Account-model, -views and -controller
添加到我现有的" APP1" -application并使用其他EmailAdress属性扩展AccountModel:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string EmailAddress { get; set; }
public string UserName { get; set; }
}
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[Display(Name = "Email")]
public string EmailAddress { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
}
我还将电子邮件地址的Label和TextBox添加到Register.cshtml视图:
<li>
@Html.LabelFor(m => m.EmailAddress)
@Html.TextBoxFor(m => m.EmailAddress)
</li>
到目前为止一切顺利。但是当运行WepApp并尝试加载/Account/Register
视图时,它会引发错误,它发生在Filter/InitializeSimpleMembershipAttributes.cs
:
类型&#39; System.InvalidOperationException&#39;的例外情况发生在 NetradoxDotCom.dll但未在用户代码中处理
其他信息:ASP.NET Simple Membership数据库可以 没有被初始化。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=256588
我该如何解决这个问题?另外,我如何启用用户角色,例如管理员?
更新1
我解决了,登录页面现在正在工作!我所做的是在DefaultConnection
文件中评论web.config
ConnectionString:
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-APP1-20131105213440;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-APP1-20131105213440.mdf" providerName="System.Data.SqlClient" />
到目前为止,这么好,但是是否也可以使用我的EF SQL Server实例?另外,最简单的角色扮演方法是什么?
更新2
我可以通过更改DefaultConnection
文件中的web.config
ConnectionString来更改数据库。
谢谢