Я использую MVC 5 с идентификатором 2. Я создал две роли, одну для администраторов и одну для поставщиков. Проблема заключается в том, что форма регистрации должна использовать свойства, определенные в роли поставщика. Я не могу понять, как заставить MVC использовать эти свойства роли для целей регистрации. Я попытался назначить соответствующую роль для приложения, но, назначив ему роль, она все еще говорит, что ее не существует. Есть ли способ сделать это, или мне придется разбить это на два экрана регистра (т. Е. Один, чтобы обрабатывать начальное создание пользователя, а второй - для выполнения конкретной роли)?ASP MVC 5 Идентификация 2: Невозможно определить, как ссылаться Пользовательские свойства роли для пользователя
public async Task<ActionResult> Register(RegisterVendorViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser
{
UserName = model.Email,
Email = model.Email,
FirstName = model.FirstName,
LastName = model.LastName,
PhoneNumber = model.PhoneNumber,
CompanyName = model.CompanyName,
Address = model.Address,
City = model.City,
State = model.State,
PostalCode = model.PostalCode
};
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
UPDATE: Я разделил точку зрения, первый взгляд сделку исключительно с созданием приложений пользователя, в то время как второй вид, где я добавить поля VendorUser ролей для пользователя, созданного в первом представлении. Теперь это ошибки и говорит, что я не могу добавить атрибуты VendorUserRole в IdentityUserRole.
Код ошибки «Ошибка 2 Аргумент 1: не удается преобразовать из„Project1.Models.VendorUserRole“до" Microsoft.AspNet.Identity.EntityFramework.IdentityUserRole»
я явно не обновлять или отменять что-то в моих ролях реализация. Кто-нибудь знает, где это можно исправить? Я думал, что я изменил их все, чтобы нормально работать.
// POST: /Account/RegisterP2
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> RegisterP2([Bind(Include = "Id")]RegisterPart2ViewModel model)
{
if (ModelState.IsValid)
{
var vendorUser = new VendorUserRole()
{
Id = model.Id,
CompanyName = model.CompanyName,
Title = model.Title,
Address = model.Address,
City = model.City,
State = model.State,
PostalCode = model.PostalCode,
};
var user = await UserManager.FindByIdAsync(vendorUser.Id);
**user.Roles.Add(vendorUser);**
ОБНОВЛЕНИЕ: Мне явно нужно больше понимания Идентичности, прежде чем я попробую больше кода; может кто-нибудь сказать мне, если моя основная предпосылка верна ?:
Мне нужны два разных пользователя: поставщики и администраторы, которые имеют разные свойства, у меня есть один пользовательский класс ApplicationUser, который поставляется с Identity 2. Я создал роли с различными свойствами для каждого, и теперь я застрял. Я не могу понять, как ссылаться на разные роли в основной класс пользователя. Согласно моим исследованиям в .NET, пользователь - это просто сущность, которая входит в систему, выходит и т. Д. Предполагаемые роли должны позволять вам присоединять роли к экземпляру пользователя, тем самым создавая необходимую роль.
Я надеюсь, что я не сделал часы кодирования на основе неисправного помещения ...
Если кто-нибудь знает, где я могу найти ресурсы, связанные с добавлением атрибутов к пользователю с идентификатором 2, используя роли; Я был бы признателен за помощь. – Rasen244