2016-03-21 3 views
1

Ich habe eine MVC5-Anwendung, in der ich eine Anforderung für einen Administrator habe, um Lieferanten ihre ASP.NET-Benutzer-ID-Login-Details zuzuweisen. Dies liegt daran, dass ein Lieferant sich für meine Anwendung registrieren könnte, die eine andere ID enthalten würde als die, die bereits eingerichtet wurde. Ich brauche einen Administrator, um ihre Lieferanten-ID zu erhalten und sie ihrer ASP.Net-Benutzer-ID zuzuweisen.Asp.Net MVC4 Zuweisen eines Lieferanten zu aspNet UserId

Ich schuf die Lieferanten und Benutzer in eine Dropdown-Liste, die alle gut ist. Ich brauche jetzt die Lieferanten-ID zu aktualisieren, um die ASP.Net-Benutzer-ID übereinstimmen

Was ich habe, ist wie folgt Controller:

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult AssignSupplier(string supplierName, string UserName) 
    { 
     ApplicationUser user = db.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault(); 


     UserManager<ApplicationUser> _userManager = new UserManager<ApplicationUser>(
     new UserStore<ApplicationUser>(new ApplicationDbContext())); 

     // this.UserManager.ad 

     var supp = db.Suppliers.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList(); 
     ViewBag.Suppliers = supp; 
     var users = db.Users.OrderBy(r => r.UserName).ToList().Select(rr => new SelectListItem { Value = rr.UserName.ToString(), Text = rr.UserName }).ToList(); 
     ViewBag.Users = users; 

     return View("ManageUserRoles"); 
    } 

Ich bin nicht sicher, wie ich die ASPnet Benutzer speichern Id zurück in die Lieferanten-Tabelle und überschreibt die aktuelle ID, kann dies überhaupt getan werden. Ich habe durch folgende http://www.dotnetfunda.com/articles/show/2898/working-with-roles-in-aspnet-identity-for-mvc

Ich habe eine sehr ähnliche Lösung zuweisen Benutzern Rollen verwendet gefragt, ob jemand könnte

Vielen Dank Mark helfen oder raten

+0

warum verwenden Sie nicht Rollen – rashfmnb

+0

Was möchten Sie damit erreichen? Wenn Sie einen Benutzer einem Lieferanten zuordnen möchten, geben Sie die Beziehung umgekehrt an, indem Sie eine SupplierID für den Benutzer festlegen. –

+0

danke @Richard Mosseveld das habe ich jetzt gemacht! – markabarmi

Antwort

2

Wollen Sie erstellen eine Eins-zu-viele Beziehung zwischen Supplier und User?

Ihre User müsste ein Supplier:

public class ApplicationUser 
{ 
    //... 
    public virtual Supplier Supplier {get;set;} 
    //... 
} 

und Ihre Supplier benötigt eine Liste von User

public class Supplier 
{ 
    //... 
    public virtual List<ApplicationUser> Users {get;set;} 
    //... 
} 

Dann in Ihrem Controller Sie den Lieferanten der Nutzer:

public ActionResult AssignSupplier(string supplierName, string UserName) 
{ 
    ApplicationUser user = db.Users.FirstOrDefault(u => u.UserName == UserName); 

    Supplier supplier = db.Suppliers.FirstOrDefault(x => x.Name == supplierName); 

    // Assign supplier to user 
    user.Supplier = supplier; 

    // Save 
    db.SaveChanges(); 

    // ... 
} 
+0

Ahhh ok danke @Chris das könnte was ich vermisse. Ich werde dies ein Dankeschön für den Kopf geben :) – markabarmi

+0

Tolles Zeug @Chris vielen Dank dafür! – markabarmi

Verwandte Themen