我想在我的登录屏幕上执行两个步骤,UserGroup 和 UserName 之类的;
A组
- 用户 ID=1 用户名=ahmet
- UserID=2 用户名=mehmet, name=mehmet, surname=demir
- UserID=3 用户名=ali, name=ali, surname=bakır
B组
- 用户 ID=4 用户名=veli
- UserID=5 用户名=mehmet, name=mehmet, surname=çelik
- UserID=6 用户名=ali, name=ali, surname=pirinç
http://i.stack.imgur.com/0dasj.png
当 Mehmet Demir 想要登录时,他必须使用 aGroup、mehmet 和他的密码,当 Mehmet Çelik 想要登录时,他必须使用 bGroup、mehmet 和他的密码。
我必须使用哪个会员资格?
我尝试使用 ASP.NET SimpleMembership;我的数据库图是;
http://i.stack.imgur.com/yVpKp.png
我试着这样
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model, string returnUrl)
{
if (model.UserGroupName != null)
{
UsersContext userContext = new UsersContext();
DbEntities db = new DbEntities();
var userGroupName = model.UserGroupName;
var userGroupID = db.UserGroups.Where(a => a.UserGroupName == userGroupName).Select(b => b.UserGroupID).Single();
var userName = userContext.UserProfiles.Where(c => c.UserGroupID == userGroupID).Select(d => d.UserName);
if (userName.Contains(model.UserName))
{
if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password))
{
return RedirectToLocal(returnUrl);
}
}
}
// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "User group, username or password is incorrect..");
return View(model);
}
它可以工作,但是当我想创建新用户时,我当然不能在不同的用户组中注册相同的用户名..
如何自定义 SimpleMembership 帐户控制器或帐户模型?或使用其他会员资格?