使用.net中的跨域的会话和cookie值

时间:2017-06-13 10:00:00

标签: asp.net-mvc session cookies cross-domain

我有两个项目 - 一个MVC项目,另一个是API项目。我已将登录表单和脚本放在MVC项目中,后端位于API项目中。

我已经写了如下登录表单:

<form>
     <div class="form-group">
        <input type="email" class="form-control" id="email" placeholder="Username">
     </div>
     <div class="form-group">
        <input type="password" class="form-control" id="pwd" placeholder="Password">
     </div>
            <button id="buttonSubmit" class="btn btn-default">LOG IN</button>
</form>

当客户填写上述表格时,提交登录脚本:

var user =
         {
              UserName:  $("#email").val(),
              Password: $("#pwd").val(),
              IsRemember: $(".customCheckBox").val() 
         }
$.ajax({
          type: "POST",
          url: "http://localhost:55016/api/ajaxapi/loginmethod",
          data: user,
          success: function (response) {
               document.cookie = "UserName = " + response.UserName;
          }
});

然后我使用API​​项目创建了会话,如下所示:

[HttpPost]
[Route("api/ajaxapi/loginmethod")]
public UserValuesForLogOn AjaxLogOnMethod(UserValuesForLogOn user)
{
     HttpContext.Current.Session["authToken"] = user;
     return user;
}

登录后我调用了ajax post来获取如下所示的详细信息,这是在MVC项目中:

$.ajax({
        type: "POST",
        url: "http://localhost:55016/api/ajaxapi/caselistmethod",
        success: function (response) {
        }
});

然后我在API项目中编写了代码,以便在登录过程中存储会话值:

[HttpPost]
[Route("api/ajaxapi/caselistmethod")]
public List<UserValuesForLogOn> AjaxCaseListMethod()
{
      userDetails = (UserValuesForLogOn)HttpContext.Current.Session["authToken"];
      return userDetails;
}

Cookie和会话值都不能包含在API项目中。请帮我。是否可以在跨域情况下访问会话和cookie。

感谢。

0 个答案:

没有答案