我有一个asp.net mvc应用程序,它使用标准帐户控制器来处理身份验证。 客户要求我将新字段添加为电子邮件,城市,年龄到帐户创建。 这将是扩展账户控制器/模型的最佳方式? 我应该修改aspnet_users表还是应该用新字段创建一个新表?这是一个正确的方式来添加新的字段AccountFormViewModel?asp.net mvc:如何扩展账户控制器?
1
A
回答
1
我想你有两个选择:
1)创建您的custom membership provider。
2)使用内置profile membership provider
反正你必须执行/扩展的AccountController和视图模型,你有一个新的MVC项目得到。 如果您选择第一个选项,则可以将字段添加到aspenet_users表。 如果您选择第二个选项,则使用框架希望您创建的配置文件表。
如果你想要一个“超级集成”你的领域,你可以考虑扩展IIdentity和IPrincipal接口。查看this answer了解更多信息。
希望它有帮助
1
以下是类似的帖子到扩展帐户控制器的链接。
0
首先,你必须修改RegisterModel AcountModels,并添加新的Fileds
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { 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; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
在AcountController修改注册行为
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
using (var context = new ECDB())
{
var username = model.UserName;
var user = context.UserProfiles.SingleOrDefault(u => u.UserName == username);
user.FirstName = model.FirstName;
user.LastName = model.LastName;
user.Email = model.Email;
context.SaveChanges();
}
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
相关问题
- 1. Asp.Net Mvc账户控制器JSon和View?
- 2. ASP.NET MVC控制器和扩展框架
- 3. 控制扩展器控制扩展量
- 4. 如何扩展ASP.NET MVC AuthorizeAttribute
- 5. 扩展MVC Api控制器名称
- 6. ASP.NET MVC - 控制器的JSON.NET扩展方法
- 7. 如何从账户控制器创建新的用户身份?
- 8. HtmlHelper扩展 - 用户控制
- 9. 如何扩展一个DLL中内置的MVC控制器
- 10. 如何从MVC HtmlHelper扩展中获取当前控制器?
- 11. ASP.Net MVC控制器
- 12. asp.net mvc账户模型
- 13. Zend Framework - 扩展控制器
- 14. 扩展注解控制器
- 15. Symfony2:扩展FrameworkBundle控制器
- 16. 扩展codeigniters控制器
- 17. ASP.NET MVC + LiveID - >我应该使用Membership提供者和账户控制器吗?
- 18. 扩展Asp.Net MVC路由机制
- 19. 如何命名Asp.net Mvc控制器?
- 20. YUI控件的ASP.NET MVC HtmlHelper扩展(Yahoo用户界面)?
- 21. ASP.NET MVC标识:如何扩展AspNetUserRoles表
- 22. 使用Telerik的扩展在asp.net MVC控制
- 23. 如何绑定到控制扩展器内部的控制
- 24. Asp.Net Web用户控件扩展
- 25. 扩展ASP.NET用户
- 26. MVC3 Moq账户控制器c#nUnit
- 27. 如何配置集线器URI到MVC控制器TFS 2017年扩展
- 28. 删除API控制器的强制扩展.json扩展
- 29. ASP.NET MVC 3 _Layout.cshtml控制器
- 30. Asp.net MVC继承控制器