2017-03-23 53 views
1

asp.net mvcアプリケーションでは、残りのWebサービスを使用して、パラメータとして渡されたセッションIDに関連付けられたユーザ名を返したいと思います。asp.net mvcでユーザのセッションIDを取得

ログインしたユーザーのsessionIDはどのように取得できますか?

ログイン方法で手動でセッションIDを設定する必要はありますか?

また、セッションIDを使用してユーザー情報を取得するにはどうすればよいですか。

ご協力いただければ幸いです。ありがとうございました !アカウント・コントローラで

ログイン方法:

[HttpPost] 
    public ActionResult LogIn(UserLoginView ULV, string returnUrl) 
    { 
     if (ModelState.IsValid) 
     { 
      UserManager UM = new UserManager(); 
      string password = UM.GetUserPassword(ULV.EmailID); 

      if (string.IsNullOrEmpty(password)) 
       ModelState.AddModelError("", "*The Email-ID or Password provided is incorrect"); 
      else 
      { 
       if (ULV.Password.Equals(password)) 
       { 
        FormsAuthentication.SetAuthCookie(ULV.EmailID, false); 
        if (Url.IsLocalUrl(returnUrl)) 
        { 
         return Redirect(returnUrl); 
        } 
        else 
        { 
         return RedirectToAction("Index", "Home"); 
        } 
       } 
       else 
       { 
        ModelState.AddModelError("", "*The Password provided is incorrect"); 
       } 
      } 
     } 

     return View(); 
    } 

Webサービスメソッドユーザーコントローラーで:

public class UserController : ApiController 
    { 
    [HttpGet] 
    public string UserInfo() 
    { 
     HttpSessionState sessionValue = HttpContext.Current.Session; 

     return sessionValue.SessionID.ToString(); 

    } 
} 
+0

はい。私はちょうど解決策[ここ](http://stackoverflow.com/a/27276358/1007608)が問題を解決することを確認しました。とてもかっこいい。 –

答えて

1

linkこのリンクの最初の答えは、セッションIDを取得するソリューションです。

3

使用している.NETのバージョンは何? .NET Framework 4.5.2を使用して、次のコードを使用してSessionID値を取得できました。string sessionID = HttpContext.Session.SessionID;

+0

私は同じバージョンを使用しています。それでも私はsessionID行にnull参照例外を取得します。 –

+0

私は参照してください。セッションがNULLなので、WebAPIコントローラメソッドで 'HttpContext.Current.Session'からSessionIDを取得しようとすると、NullReferenceExceptionも発生します。これは、MVCページコントローラメソッドでは起こりません。そして、MVCコントローラメソッドでは、 'HttpContext.Current'は存在しないようです。 MVCコントローラメソッドで 'HttpContext.Session'を使う必要があります。私は、WebAPIの方法がセッションレスであることを述べた記事を読んだだけです。 [リンク](http://stackoverflow.com/questions/11478244/asp-net-web-api-session-or-something) –

+0

このスタックオーバーフローポストでWebAPIのセッションを有効にする方法については、読んでみてください:[.NET Web API +セッションタイムアウト](http://stackoverflow.com/questions/27275974/net-web-api-session-timeout?noredirect=1&lq=1) –

関連する問題