当前位置:编程学习 > JS >>

在ASP.NET MVC3 中利用JSONP跨域登录WEB系统

 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录。一般情况下我们需要在多系统之间使用多个用户名和密码。这样客户就需要在多个系统之间重复登陆。每次登录都需要输入用户名和密码。最近比较流行的就是OAuth。新浪微博这个开放系统做的就很好。但OAuth并非本文讨论范畴。这里主要讨论jQuery1.5 jsonp 在Asp.net MVC3 中的应用。

    本文应用场景:

        假设您的开发团队欲为某集团公司开发一整套信息管理系统,目前首要开发的就是一套订单系统和一套内部OA系统。前提是这两套系统使用同一套数据库。只是两个不同的MVC3.0 Web项目。也就是说会在同一个IIS上部署两个虚拟目录。  我们的目标是在不使用WCF、WebService 等技术实现跨域登录。也就是说用户用同一个帐号登录了订单系统,那么客户就可以直接登录OA系统。而不需要在OA系统上再输入一次用户名和密码。反之亦成立。

    jQuery1.5 JSONP 使用:

<script type="text/javascript">
2 $(function () {
3 var oAUri = "@ViewBag.OAVRUri";
4 var user = "@ViewBag.User";
5 var pwd = "@ViewBag.PassWord";
6
7 $.ajax({
8 type: "GET",
9 url: String.format({0}Account/AppLogOn?UserName={1}&PassWord={2}&callback=?,
oAUri, user, pwd),
10 cache: false,
11 error: function () {
12 alert("程序出错,请联系管理员.");
13 },
14 dataType: "jsonp",
15 jsonp: callback,
16 success: function (result) {
17
18 }
19 });
20
21 });
22 </script>


   在MVC3.0中建立JSONP专用ActionResult

      代码如下:

1 public class JsonpResult<T> : ActionResult
2 {
3 public T Obj { get; set; }
4 public string CallbackName { get; set; }
5
6 public JsonpResult(T obj, string callback)
7 {
8 this.Obj = obj;
9 this.CallbackName =
补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,