2014-09-28 56 views
1

我正在使用身份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中的研究,用戶只是登錄,退出等實體。適當定義的角色應該允許您將角色附加到用戶實例,從而創建必要的角色。

我希望我沒有做編碼基於一個錯誤的前提小時......

+0

如果有人知道在哪裏可以找到一些關於使用角色向身份2用戶添加屬性的資源;我將不勝感激。 – Rasen244 2014-09-29 02:01:38

回答

0

這是因爲用戶註冊之前,還沒有建立自己的用戶,因此他尚未存在的用戶不能有一名角色。您應該有兩個單獨的視圖,使用相同的模型和控制器,但您應該知道該用戶尚不存在。

+0

我知道這是一個解決方案,我只是想知道是否有人知道在一個註冊頁面上完成所有操作的方法。 – Rasen244 2014-09-28 04:24:45

+0

這是可能的,但凌亂。我不推薦它。 – 2014-09-28 05:10:25

+0

任何想法我錯過了什麼導致新的錯誤? – Rasen244 2014-09-28 21:16:13

相關問題