我正在开发一个新的ASP.Net MVC 4应用程序并测试用户登录。我得到以下例外:
System.Data.SqlClient.SqlException: Invalid column name 'Email'
我正在使用http://kevin-junghans.blogspot.com/2013/02/adding-email-confirmation-to.html中的示例。
以下是适当的代码:
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
string confirmationToken =
WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { Email = model.Email }, true);
System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress("noreply@cardmage.com");
System.Net.Mail.MailAddress[] to = new System.Net.Mail.MailAddress[1];
to[1] = new System.Net.Mail.MailAddress(model.Email);
System.Net.Mail.MailAddress[] cc = new System.Net.Mail.MailAddress[0];
System.Net.Mail.MailAddress[] bcc = new System.Net.Mail.MailAddress[0];
String Subject = "Please verify your e-mail address.";
String body = String.Format("Thank you for registering with CardMage." +
"To verify your account, please follow this link." +
"http://www.cardmage.co/Account/RegisterConfirmation/{0}", confirmationToken);
System.Net.NetworkCredential nc = new NetworkCredential("foo", "bar");
SendGrid sg = SendGrid.GetInstance(from, to, cc, bcc, Subject, body, "");
SMTP s = SMTP.GetInstance(nc);
s.Deliver(sg);
return RedirectToAction("RegisterStepTwo", "Account");
我做错了什么?我试图从谷歌搜索中找到解决方案,但没有运气。我发现this SO问题的属性值格式与我相同,所以我检查了我的数据库,但是电子邮件列不存在。有人可以指点我正确的方向吗?感谢您的时间和考虑。
答案 0 :(得分:3)
要通过调用CreateUserAndAccount更新您的电子邮件字段,请执行以下操作:
1确保您使用的数据库表具有电子邮件列。
2更改帐户模型UserProfile以包含您的电子邮件字段。
3更改“注册”视图以包含您的电子邮件。
4更改AccountController以包含一个不对称的对象(这是你已经完成的)
然后,当您注册新用户时,他们的电子邮件将存储在数据库表中。
这适合我。