如何允许用户管理.Net MVC 5.0应用程序

时间:2015-05-01 12:34:05

标签: c# asp.net asp.net-mvc entity-framework

我使用ASP.NET Identity 2.0构建了一个MVC应用程序。我之前已经多次这样做了,我没有注册用户,设置密码等问题。这些都是模板完成的。

但是,我的客户要求能够自己管理用户。我认为这就像为数据库中的AspNetUsers表创建控制器和视图一样简单。它不是。对于初学者,我必须在创建控制器和视图之前创建一个模型,但鉴于它是代码优先的,实际上没有任何意义。我尝试创建一个视图模型,因为数据库不想更新,但EF不识别AspNetUsers,因为没有模型,所以它无法连接。

如果我听起来很困惑,那是因为我。任何人都可以解释一下。我想要的只是一个显示所有用户并允许管理员添加或删除应用程序用户的视图。我知道会有一些问题,例如设置密码等,但我可以稍后解决。

如果可以避免,我不想滚动自己的用户表。

1 个答案:

答案 0 :(得分:0)

创建模型;

public class UserModel
{
    public string UserName {get; set;}
    public string Password {get; set;}
}

扩展您的AccountController;

public class AccountController : Controller 
{ 
    [Authorize(Roles="Admin")]           
    public ActionResult Index() 
    {
        return View(/* Get all users using UserManager */);
    }

    [Authorize(Roles="Admin")]   
    public ActionResult Create() 
    { 
        return View();
    }

    [HttpPost]
    [Authorize(Roles="Admin")]   
    public async Task<ActionResult> Create(UserModel model)
    {
        if(ModelState.IsValid)
        {
            var user = new ApplicationUser() { UserName = model.UserName };
            var result = await UserManager.CreateAsync(user, model.Password);
            if(result.Succeeded)
            {
                //handle success
            }
            else 
            {
                //handle otherwise
            }
        }
    }
}

最后,在Index中创建观看次数CreateViews/Account,并将其映射到UserModel

同样适用于EditDelete,但我会将其留作练习:)