Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何允许用户在.Net MVC 5.0应用程序中管理用户_C#_Asp.net_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 如何允许用户在.Net MVC 5.0应用程序中管理用户

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,因为没有模型,所以无法连接 如果我听起

我已经使用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。这给了我索引。我以后再做编辑。非常感谢。