2012-05-01 53 views
0

我正在使用MVC 3 .Net成員資格。這對我來說是非常新穎的,我一直堅持在用戶成功登錄後將用戶重定向到他們的用戶詳細信息頁面。這裏是登錄控制器。我的用戶詳細信息操作期望將用戶的GUID傳遞給它,我不知道該怎麼做。我試過User.id?和Membershipt.GetUser()等等,但我似乎無法獲得用戶詳細信息操作需要的GUID。有任何想法嗎?在此先感謝.Net登錄後重定向到用戶詳細信息/傳遞用戶的GUID

[HttpPost] 
    public ActionResult LogOn(LogOnModel model, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      if (Membership.ValidateUser(model.UserName, model.Password)) 
      { 
       FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
       if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/") 
        && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\")) 
       { 
        return Redirect(returnUrl); 
       } 
       else 
       { 
        return RedirectToAction("Details", "User", new { id = User.??????}); 
       } 
      } 
      else 
      { 
       ModelState.AddModelError("", "The user name or password provided is incorrect."); 
      } 
     } 

     // If we got this far, something failed, redisplay form 
     return View(model); 
    } 
+0

這不一定是一個Guid,但你正在尋找MembershipUser.PoviderUserKey http://msdn.microsoft.com/en-us/library/system.web.security.membershipuser.provideruserkey.aspx – asawyer

+0

謝謝你回到我身邊 - 但是當我嘗試在這種情況下訪問Provider UserKey時,它不可用。任何其他想法? –

+0

感謝Asawyer - 你用ProviderUserKey讓我走向正確的方向我用Object guid = Membership.GetUser()解決了它。ProviderUserKey;然後將guid傳遞給RedirecttoAction。 –

回答

0

所有我發現快速搜索是問題,而不是解決方案或示例。雖然這並不意味着任何內容 - 我不熟悉「AccountModel」和「LogOnModel」命名空間及相關方法。但我仍然可以幫忙。

第一個問題:GUID存儲在哪裏?您是使用目錄(AD/LDAP)還是數據庫(SQL)。 GUID是「在那裏」的,如果它已經可以訪問,是不是像model.GUID這樣的東西。您的ValidateUser找到了用戶名,但它不知道有關GUID的任何信息。例如,當你有一個有效的用戶名和密碼時,ADODB,Linq和DirectorySearcher都有相對簡單的獲取GUID的方法。

相關問題