如何使用web api写入会话?

时间:2014-11-26 16:20:37

标签: xcode session asp.net-web-api

我正在编写验证码。我正在对Web服务器进行身份验证。目前我的代码从xcode获取用户名和密码,然后通过URL将其发送到Web服务,然后返回我在xcode中读取的json字符串。当连接成功时,我想创建一个会话,在xcode中我想读取该会话。

Web Api:

public class SessionController : ApiController
{
    public bool loggedin = false;

    public class MyHttpControllerHandler: HttpControllerHandler, IRequiresSessionState
    {
        public MyHttpControllerHandler(RouteData routeData): base(routeData)
        { }
    }
    public class MyHttpControllerRouteHandler : HttpControllerRouteHandler
    {
        protected override IHttpHandler GetHttpHandler(
            RequestContext requestContext)
        {
            return new MyHttpControllerHandler(requestContext.RouteData);
        }
    }
    public void Authenticate(string txtLoginId, string txtPassword)
    {
        Subs objSub = SubService.GetSubs(txtLoginId.Trim(), txtPassword.Trim());

        if (objSub != null)
        {
            loggedin = true;
        }
        else
            loggedin = false;
    }
    public string Get(string user, string pass)
    {

        byte[] data = Convert.FromBase64String(pass);
        string password = Encoding.UTF8.GetString(data);

        Authenticate(user, password);

        if(loggedin == true)
        {
            var session = HttpContext.Current.Session;
            session["Time"] = DateTime.Now;
            return "Session Time: " + session["Time"] + user;
        }else
            return "Session is not availabe " + user;
    }         
}

它在此行返回以下错误

session["Time"] = DateTime.Now;

ExceptionMessage":"Object reference not set to an instance of an object."

0 个答案:

没有答案