仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 702|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计ASP.NET MVC3 中使用Jsonp跨域会见

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
感觉很多控件都必须自己去写代码;用了WebMatrix感觉也不是很好,毕竟没有很强的WYSIWYG效果。现在就不知道如何是好了。在信息体系开辟的时,依据相干营业逻辑不免会多体系之间相互登录。一样平常情形下我们必要在多体系之间利用多个用户名和暗码。如许客户就必要在多个系统之间反复上岸。每次登录都必要输出用户名和暗码。比来对照盛行的就是OAuth。新浪微博这个开放体系做的就很好。但OAuth并不是本文会商范围。这里次要会商jQuery1.5jsonp在Asp.netMVC3中的使用。
本文使用场景:
假定您的开辟团队欲为某团体公司开辟一整套信息办理体系,今朝主要开辟的就是一套定单体系和一套外部OA体系。条件是这两套体系利用统一套数据库。只是两个分歧的MVC3.0Web项目。也就是说会在统一个IIS上部署两个假造目次。我们的方针是在不利用WCF、WebService等手艺完成跨域登录。也就是说用户用统一个帐号登录了定单体系,那末客户就能够间接登录OA体系。而不必要在OA体系上再输出一次用户名和暗码。反之亦成立。
jQuery1.5JSONP利用:
  1. <scripttype="text/javascript">$(function(){3varoAUri="@ViewBag.OAVRUri";4varuser="@ViewBag.User";5varpwd="@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){}});});</script>
复制代码
在MVC3.0中创建JSONP公用ActionResult
代码以下:
  1. publicclassJsonpResult<T>:ActionResult{publicTObj{get;set;}publicstringCallbackName{get;set;}publicJsonpResult(Tobj,stringcallback){this.Obj=obj;this.CallbackName=callback;}publicoverridevoidExecuteResult(ControllerContextcontext){varjs=newSystem.Web.Script.Serialization.JavaScriptSerializer();varjsonp=this.CallbackName+"("+js.Serialize(this.Obj)+")";context.HttpContext.Response.ContentType="application/json";context.HttpContext.Response.Write(jsonp);}}
复制代码
JsonpResult复杂挪用以下:
  1. publicActionResultAppLogOn(stringUserName,stringPassWord,stringcallback){returnnewJsonpResult<object>(new{success=true,rankName=rankName},callback);}
复制代码
AppLogOn的action参数完整和上文中的jquery$.ajax参数分歧:
  1. url:String.format({0}Account/AppLogOn?UserName={1}&PassWord={2}&callback=?,oAUri,user,pwd)小结:Jsonp的服务器真个道理实在就是回调一个js函数名(这里是callback参数)将该参数传给服务端,接着再由服务器端实行这个callbackjs函数,同时附上该js函数的参数。好比上文的C#代码:varjsonp=this.CallbackName+"("+js.Serialize(this.Obj)+")";另有一点我们要注重的就是平安隐患成绩:在利用jsonp因为触及到跨域,必要思索到对方站点大概对方体系的平安性成绩。应该制止平安隐患,不克不及滥用jsonp。
复制代码
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-19 06:49:01 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
只想知道 该用户已被删除
板凳
发表于 2015-1-25 09:29:24 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
深爱那片海 该用户已被删除
地板
发表于 2015-2-2 21:20:21 | 只看该作者
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
简单生活 该用户已被删除
5#
发表于 2015-2-8 06:18:42 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
柔情似水 该用户已被删除
6#
发表于 2015-2-24 19:36:43 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
兰色精灵 该用户已被删除
7#
发表于 2015-3-7 13:29:00 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
谁可相欹 该用户已被删除
8#
发表于 2015-3-15 07:13:59 | 只看该作者
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
因胸联盟 该用户已被删除
9#
发表于 2015-3-21 20:47:57 | 只看该作者
主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-26 03:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表