亚洲韩日午夜视频,欧美日韩在线精品一区二区三区,韩国超清无码一区二区三区,亚洲国产成人影院播放,久草新在线,在线看片AV色

您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

ASP.NET MVC3 中利用Jsonp跨域訪問

添加時間:2014-8-10 21:42:29  添加: 思海網絡 

 在信息系統開發的時,根據相關業務邏輯難免會多系統之間互相登錄。一般情況下我們需要在多系統之間使用多個用戶名和密碼。這樣客戶就需要在多個系 統之間重復登陸。每次登錄都需要輸入用戶名和密碼。最近比較流行的就是OAuth。新浪微博這個開放系統做的就很好。但OAuth并非本文討論范疇。這里 主要討論jQuery1.5 jsonp 在Asp.net MVC3 中的應用。

    本文應用場景:

        假設您的開發團隊欲為某集團公司開發一整套信息管理系統,目前首要開發的就是一套訂單系統和一套內部OA系統。前提是這兩套系統使用同一套數據庫。只是兩 個不同的MVC3.0 Web項目。也就是說會在同一個IIS上部署兩個虛擬目錄。  我們的目標是在不使用WCF、WebService 等技術實現跨域登錄。也就是說用戶用同一個帳號登錄了訂單系統,那么客戶就可以直接登錄OA系統。而不需要在OA系統上再輸入一次用戶名和密碼。反之亦成 立。

    jQuery1.5 JSONP 使用:

< type="text/java">
       $(function () {
 3var oAUri ="@ViewBag.OAVRUri";
 4var user ="@ViewBag.User";
 5var pwd ="@ViewBag.PassWord";
 7            $.ajax({
               type: "GET",
               url: String.format('{0}Account/AppLogOn?UserName={1}&PassWord={2}&callback=?', oAUri, user, pwd),
               cache: false,
               error: function () {
                   alert("程序出錯,請聯系管理員.");
               },
               dataType: "jsonp",
               jsonp: 'callback',
               success: function (result) {
                }
           });
        });
</>

在MVC3.0中建立JSONP專用ActionResult

      代碼如下:

publicclass JsonpResult<T> : ActionResult
    {
public T Obj { get; set; }
publicstring CallbackName { get; set; }

public JsonpResult(T obj, string callback)
        {
this.Obj = obj;
this.CallbackName = callback;
        }

publicoverridevoid ExecuteResult(ControllerContext context)
        {
            var js =new System.Web..Serialization.JavaSerializer();
            var jsonp =this.CallbackName +"("+ js.Serialize(this.Obj) +")";

            context.HttpContext.Response.ContentType ="application/json";
            context.HttpContext.Response.Write(jsonp);
        }
    }

JsonpResult 簡單調用如下:

 public ActionResult AppLogOn(string UserName, string PassWord, string callback)
{

			returnnew JsonpResult<object>(new { success =true, rankName = rankName }, callback);
}

AppLogOn的action參數完全和上文中的jquery $.ajax 參數一致:

url: String.format('{0}Account/AppLogOn?UserName={1}&PassWord={2}&callback=?', oAUri, user, pwd)小結:      Jsonp的服務器端的原理其實就是回調一個js函數名(這里是callback參數)將該參數傳給服務端,接著再由服務器端執行這個callback js函數,
同時附上該js函數的參數。比如上文的C#代碼:
var jsonp = this.CallbackName + "(" + js.Serialize(this.Obj) + ")";還有一點我們要注意的就是安全隱患問題:
在使用jsonp由于涉及到跨域,需要考慮到對方站點或者對方系統的安全性問題。應當避免安全隱患,不能濫用jsonp。
關鍵字:Jsonp、跨域訪問、ASP.NET 、服務器

分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2024 All Rights Reserved.
聯系電話:(0757)22630313、22633833
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站