2012-05-01 17 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

私に戻ってくれてありがとう - このコンテキストでプロバイダのUserKeyにアクセスしようとすると、利用できません。他のアイデアは? –

+0

ありがとうAsawyer - ProviderUserKeyを使って私を正しい方向に導いた。Object guid = Membership.GetUser()。ProviderUserKey; RedirecttoActionにguidを渡しました。 –

答えて

0

私は簡単な検索では解決策や例ではなく、問題であることがわかりました。これはそれ自体では何も意味しませんが、私は "AccountModel"と "LogOnModel"名前空間と関連するメソッドに慣れていません。しかし、私はまだ助けてくれるかもしれません。

最初の質問:GUIDはどこに保存されていますか?ディレクトリ(AD/LDAP)またはデータベース(SQL)を使用していますか。 GUIDは「そこに」あり、すでにアクセス可能な場合は、model.GUIDのようなものではありません。 ValidateUserはユーザー名を検出しましたが、GUIDについて「何も知らない」わけではありません。 ADODB、Linq、およびDirectorySearcherは、たとえば、有効なユーザー名とパスワードを取得したときに、GUIDを取得する方法が比較的簡単です。

関連する問題