当前位置: 萬仟网 > IT编程>开发语言>.net > WebAPI+Html跨域时对session的支持

WebAPI+Html跨域时对session的支持

2018年09月11日  | 萬仟网IT编程  | 我要评论
1、Global.asax中添加对Session的支持,重新Init方法: 2、WebConfig中添加跨域支持: 3、写Session的Controller 4、读Session的Controller 5、前端jQuery调用时加上参数crossDomain: true 和 xhrFields: ...

1、global.asax中添加对session的支持,重新init方法:

 

public override void init()
        {
            this.postauthenticaterequest += (sender, e) 
                => httpcontext.current.setsessionstatebehavior
                (system.web.sessionstate.sessionstatebehavior.required);
            base.init();
        }

 

 

2、webconfig中添加跨域支持:

 

<httpprotocol>
      <customheaders>
        <clear />
        <add name="access-control-allow-origin" value="http://*.*.*.*:8088" />
        <add name="access-control-allow-credentials" value="true" />
        <add name="access-control-allow-headers" value="content-type" />
        <add name="access-control-allow-methods" value="get, post, put, delete, options" />
      </customheaders>
    </httpprotocol>

 

3、写session的controller

 

[routeprefix("reg")]
    public class regcontroller : apicontroller
    {
        [route("reguser")]
        [httpget]
        public bool reguser(string username)
        {
            system.web.httpcontext.current.session["user"] = username;
            return true;
        }
    }

 

 

4、读session的controller

 

[routeprefix("login")]
    public class logincontroller : apicontroller
    {
        [route("getlogin")]
        [httpget]
        public string getlogin()
        {
            string username = string.empty;

            if(system.web.httpcontext.current.session["user"]!=null)
            {
                username = system.web.httpcontext.current.session["user"].tostring();
            }

            return username;
        }
    }

 

5、前端jquery调用时加上参数crossdomain: true 和 xhrfields: { withcredentials: true}。


<script>
        
        var url = "http://*.*.*.*:8089/";
        var userid = "002";
        var username = "xiaoming";
        var password = "123456";
        
        
        $(function () {

            btnregclick();
            btngetnameclick();
        });

       
        
        
        function btnregclick(){
            $("#btnreg").click(function () {
                
                $.ajax({
                    type: "get",
                    url: url + "reg/reguser",
                     xhrfields: {
                     withcredentials: true
                     },
                    crossdomain: true,
                    data: {
                        userid: userid,
                        username: username,
                        password: password
                    },
                    success: function (result) {
                        $("#txtusername").val(result)
                    }
                });
                
            });
        }
        
        
        function btngetnameclick(){
            $("#btngetname").click(function () {
                
                $.ajax({
                    type: "get",
                    url: url + "login/getlogin",
                     xhrfields: {
                     withcredentials: true
                     },
                    crossdomain: true,
                    data: {
                    },
                    success: function (result) {
                        $("#txtusername").val(result)
                    }
                });
                
            });
        }

<script>
        

 

6、搞定。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
Copyright © 2017-2021  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com