C# 如何允许用户在.Net MVC 5.0应用程序中管理用户
我已经使用ASP.NET Identity 2.0构建了一个MVC应用程序。我已经这样做了很多次,我没有问题,注册用户,设置密码等。这一切都是为我做的模板 然而,我的客户要求能够自己管理用户。我认为这与在数据库中为AspNetUsers表创建控制器和视图一样简单。但不是这样。对于初学者来说,在创建控制器和视图之前,我必须先创建一个模型,但考虑到代码先行,这实际上毫无意义。我尝试创建一个视图模型,这样数据库就不会被更新,但是EF无法识别AspNetUsers,因为没有模型,所以无法连接 如果我听起来很困惑,那是因为我很困惑。谁能透露一些信息。我想要的只是一个显示所有用户的视图,并允许管理员添加或删除应用程序的用户。我知道会有一些难题,比如设置密码等,但我可以在以后解决 如果可以避免的话,我不想滚动我自己的用户表。创建一个模型C# 如何允许用户在.Net MVC 5.0应用程序中管理用户,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我已经使用ASP.NET Identity 2.0构建了一个MVC应用程序。我已经这样做了很多次,我没有问题,注册用户,设置密码等。这一切都是为我做的模板 然而,我的客户要求能够自己管理用户。我认为这与在数据库中为AspNetUsers表创建控制器和视图一样简单。但不是这样。对于初学者来说,在创建控制器和视图之前,我必须先创建一个模型,但考虑到代码先行,这实际上毫无意义。我尝试创建一个视图模型,这样数据库就不会被更新,但是EF无法识别AspNetUsers,因为没有模型,所以无法连接 如果我听起
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
}
}
}
}
公共类AccountController:控制器
{
[授权(Roles=“Admin”)]
公共行动结果索引()
{
返回视图(/*使用UserManager获取所有用户*/);
}
[授权(Roles=“Admin”)]
公共操作结果创建()
{
返回视图();
}
[HttpPost]
[授权(Roles=“Admin”)]
公共异步任务创建(用户模型)
{
if(ModelState.IsValid)
{
var user=new ApplicationUser(){UserName=model.UserName};
var result=await UserManager.CreateAsync(用户、模型、密码);
if(result.successed)
{
//成功
}
其他的
{
//另当别论
}
}
}
}
最后,在views/Account
中创建视图Index
和create
,并将它们映射到UserModel
Edit
和Delete
也是如此,但我会把它们作为练习:)让我走上正轨。我创建了一个使用AppName.Models.ApplicationUser作为模型的视图,然后从AccountController返回UserManager.Users。这给了我索引。我以后再做编辑。非常感谢。