如何检查"会话"来自`.NET`

时间:2017-12-15 06:24:30

标签: javascript asp.net ajax rest session

基本上我正在尝试检查Session中的.html page值。到目前为止,我做了什么

在ASPX中 我将值存储在session中并重定向到html页。

Session["user_id_no"] = "1234";
Response.Redirect(url);  

来自HTML 我正在调用REST GET方法。

var check= $.ajax({
    url: "/loginCheck",
    type: 'GET',
    success: function (result) {
        return result;
    },
    async:false
});

REST API和方法实施

[HttpGet]
[Route("loginCheck")]
public bool checkLoginStatus()
{
    SessionClass sc = new SessionClass();
    bool user_id_check = sc.check("user_id_no");       
    return user_id_check;
}

会话等级实施为

public class SessionClass : System.Web.UI.Page
{
     public bool check(string sessionName)
     {
         if (Session[sessionName] == null)
             return false;
         return true;
     }
}

但我得到例外。

  

的HResult = -2147467259     Message =会话状态只能在enableSessionState设置为true时使用,无论是在配置文件中还是在Page指令中。还请确保System.Web.SessionStateModule或自定义会话状态模块包含在应用程序配置的\\部分中。

但在我的web.config

<sessionState mode="InProc" timeout="30" />

我也经历了一些问题

  1. How to access Session variables and set them in javascript?
  2. Getting session value in javascript
  3. 'Session' does not exist in the current context
  4. Session state can only be used when enableSessionState is set to true either in a configuration

2 个答案:

答案 0 :(得分:0)

你有没有试过这个?

using System.Web.SessionState;

public class SessionClass :  IRequiresSessionState
{
     public bool check(string sessionName)
     {
         if (HttpContext.Current.Session[sessionName] == null)
             return false;
         return true;
     }
}

答案 1 :(得分:-1)

您需要在配置中enableSessionState作为例外说明

 <system.web>
      <pages enableSessionState="true" /> 
 </system.web>

检查this answer以获取更多信息