Access Session in Web API 2 MVC 5

How To Access Session Variables in Web API 2 Controller in ASP.Net MVC 5?

Accessing Session Using ASP.NET Web API 2 in MVC 5 -

Well, as you know, REST API by design is stateless. By adding session variables you are making it stateful and defeating any purpose of having a RESTful API.

In WebApi 2 you can add this to Global.asax
//Global.asax
protected void Application_PostAuthorizeRequest()
{
   System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}


Then you could access the session through
namespace demo.Api
{
    [EnableCors(origins: "http://localhost:53865,https://app.code-sample.com", headers: "*", methods: "*")]
    public class BaseAPIController : ApiController
    {
        /// <summary>
        /// BaseAPIController constructor will check that identity exists or not.
        /// </summary>
        public BaseAPIController()
        {
            //GET Current Session.
            var session = System.Web.HttpContext.Current.Session;

            if (!(HttpContext.Current.User.Identity.IsAuthenticated))
            {
                SetHeader();
            }
        }

        /// <summary>
        /// Set header status code to 401
        /// </summary>
        public void SetHeader()
        {
            HttpResponse resp = HttpContext.Current.Response;
            resp.StatusCode = 401;
            resp.End();
        }
    }
}


References -

I hope you are enjoying with this post! Please share with you friends. Thank you!!
ANIL SINGH

Hey! I'm Anil Singh. I author this blog. I'm Active Blogger, Programmer. I love learning new technologies, programming, blogging and participating the forum discussions more...
My Blogs - https://code-sample.com and https://code-sample.xyz
My Books - Interview Questions and Answers Books- Get Your Book in 15+ Digital Stores Worldwide..

You Might Also Like
Post a Comment
www.code-sample.com/. Powered by Blogger.
ASK Questions