我正在使用身份2的MVC 5.我創建了兩個角色,一個供管理員使用,另一個供應供應商。我遇到的問題是註冊表單必須使用在供應商角色中定義的屬性。我無法弄清楚如何讓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與標識2一起來。我創建了具有不同屬性的角色爲每個,現在卡住了。我無法弄清楚如何將不同的角色引用到主用戶類中。根據我在.NET中的研究,用戶只是登錄,退出等實體。適當定義的角色應該允許您將角色附加到用戶實例,從而創建必要的角色。
我希望我沒有做編碼基於一個錯誤的前提小時......
如果有人知道在哪裏可以找到一些關於使用角色向身份2用戶添加屬性的資源;我將不勝感激。 – Rasen244 2014-09-29 02:01:38