2015-05-01 3 views
0

Я создал приложение MVC с использованием ASP.NET Identity 2.0. Я делал это много раз, и у меня нет проблем с регистрацией пользователей, установкой паролей и т. Д. Все это делается для меня шаблоном.Как разрешить пользователю управлять пользователями в приложении .Net MVC 5.0

Однако мой клиент попросил уметь управлять пользователями сами. Я предположил, что это будет так же просто, как создание контроллера и представлений для таблицы AspNetUsers в базе данных. Его нет, хотя. Для начала мне нужно создать модель, прежде чем я смогу создать контроллер и представление, но учитывая, что это код-первый, это не имеет никакого смысла. Я попытался создать модель представления, так как база данных не захочет обновляться, но тогда EF не распознает AspNetUsers, поскольку нет модели, поэтому она не может подключиться.

Если я смущен, это потому, что я есть. Может кто-нибудь пролить свет. Все, что я хочу - это представление, показывающее всех пользователей и позволяющее администратору добавлять или удалять пользователей приложения. Я знаю, что будет несколько ошибок, таких как установка паролей и т. Д., Но я могу понять это позже.

Я не хочу, чтобы рулон мой собственный пользовательский стол, если я могу избежать его.

ответ

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 и Create в Views/Account и сопоставить их с UserModel.

То же самое касается и EditDelete, но я оставлю их в качестве упражнения :)

+0

, что у меня начали на правильном пути в любом случае. Я создал представление, которое использовало AppName.Models.ApplicationUser в качестве модели, а затем возвратило UserManager.Users из контроллера AccountController. Это дало мне индекс в любом случае. Я сделаю редактирование позже. спасибо –

Смежные вопросы