2012-06-24 25 views
0

我有一個登錄用戶使用Membership.CreateUser創建另一個用戶(不同的角色)。創建用戶後,登錄用戶自動獲取引導,並且新創建的用戶登錄。如何通過成員創建用戶而不必在創建後登錄到他們的帳戶?

目標是讓登錄用戶創建一個新用戶並繼續在正在登錄的應用程序內工作他們自己的憑據。

我不知道如何改變這一點。任何幫助,將不勝感激。

這裏是我的代碼:

 [HttpPost] 
    public ActionResult RegisterClientContact(RegisterClientContactViewModel model) 
    { 
     if (ModelState.IsValid) 
     { 
      //Create Generic password - First initial Last initial 1234 
      string genericPassword = model.FirstName.Substring(0, 1).ToLower() + model.LastName.Substring(0, 1).ToLower() + "1234"; 


      //Attempt to register the Client Contact 
      MembershipCreateStatus createStatus; 
      Membership.CreateUser(model.Email, genericPassword, model.Email, null, null, true, null, out createStatus); 



      if (createStatus == MembershipCreateStatus.Success) 
      { 
       Roles.AddUserToRole(model.Email, "Client"); 
       FormsAuthentication.SetAuthCookie(model.Email, false /*create persistent cookie*/); 

       Person person = new Person(); 
       person.FirstName = model.FirstName; 
       person.LastName = model.LastName; 
       person.Email = model.Email; 
       person.Phone = model.Phone; 
       person.Active = true; 

       db.Persons.Add(person); 
       db.SaveChanges(); 

       ClientContact clientPerson = new ClientContact(); 
       clientPerson.ClientPersonId = person.Id; 
       clientPerson.Title = model.Title; 
       clientPerson.ClientId = model.ClientId; 

       db.ClientPersons.Add(clientPerson); 
       db.SaveChanges(); 

       return RedirectToAction("Index", "ClientContact"); 
      } 
     } 

     return View("An Error has occured"); 
    } 

回答

0

嘗試刪除這兩條線。

Roles.AddUserToRole(model.Email, "Client"); 
FormsAuthentication.SetAuthCookie(model.Email, false /*create persistent cookie*/); 
+0

工作很好。我沒有刪除第一行,因爲我需要爲這個新創建的用戶分配一個角色。但刪除第二行是訣竅。謝謝! –

+0

太棒了!很高興我能幫上忙。 –

相關問題