jsonp 實現sso

這幾天用jsop實現了公司的sso。ajax

這裏面最重要的是對cookie的理解。json

cookie 就是一個網站存於本地的數據,zai下次請求同一個網站時,發送給服務器,服務器端能夠進行AUD操做,這種操做後的數據會返回並保留在本地,等待下次請求。服務器

對同一個網站,不論是網頁,ajax,或者jsonp請求,cookie都會被髮送到服務器。cookie

利用jsonp把sso站點的cookie,傳送登陸站點,解析後,經過回調,傳送給當前站點,就完成了sso的登陸功能。app

其實就是,cookie只和被請求站點有關,任何方式對站點的請求,只會傳送被請求站點的cookie,和發起請求的站點無關。async

 private void ReturnUserInfo(WebUser user,string token,string userJson)
        {
            HttpContext.Current.Response.Write(callbackName + "({\"result\":\"0\",\"uname\":\"" + user.RealName + "\",\"token\":\"" + token + "\",\"data\":\"" + userJson + "\"});");
            HttpContext.Current.Response.End();
        }
//ajax
function GetJsonpData(callback,data,url) {
    $.ajax({
        async: false,
        crossDomain: true,
        type: "GET",
        dataType: "jsonp",
        jsonpCallback: callback,
        //jsonp: "callback", //默認callback         
        url: url,
        data: data,
        contentType: "application/json; charset=utf-8",
        success: function (json) { },
        beforeSend: function () { },
        complete: function (data, status) { },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            var t1 = textStatus;
            var t2 = XMLHttpRequest.status;
            var t3 = XMLHttpRequest.readyState; ;
            var t4 = XMLHttpRequest.responseText;
//            alert(textStatus);
        }
    });
}
相關文章
相關標籤/搜索