在ASP.NET MVC3 中利用JSONP跨域登录WEB系统(加强版)

     本文为 在ASP.NET MVC3 中利用JSONP跨域登录WEB系统 这篇文章的改进版。在上文中首先感谢园友们的热心讨论。本文将对跨域登录进行一改进,改进内容如下:

  •      跨域登录后不同系统之间的cookie管理。
  •      主系统注销登录后子系统同步注销。
  •      支持除IE外的FireFox 、Opera、Chrome、Safari主流浏览器。

     若要管理好cookie,这里以为多个ASP.NET MVC3 功能为例。用.NET的 IFormsAuthenticationService 进行权限认证。我们只要在web.config中这样设置:

 <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" name="App1" />
  </authentication>

请注意红色部分,这样IIS set-cookie 权限时将以App1作为Cookie名,否则会用asp.net默认名称作为cookie名称。这样我们有多系统jsonp登录时,保存用户的cookie就会被覆盖。

如果您也感兴趣,可以使用抓包工具查看IIS 对用户权限认证 set-cookie 过程。

      在jQuery1.5中使用jsonp我发现只有IE下正常,其他的浏览器都不正常。经过一番搜索找到解决方案:http://code.google.com/p/jquery-jsonp/ 这里有一个相对完整的解决方案。使用该js插件,就可以多浏览器支持jsonp了。

最后附上程序截图以及完整的相关demo.

在ASP.NET MVC3 中利用JSONP跨域登录WEB系统(加强版)_第1张图片

在ASP.NET MVC3 中利用JSONP跨域登录WEB系统(加强版)_第2张图片

本例demo这里下载:ryanding/JSONP.rar

你可能感兴趣的:(在ASP.NET MVC3 中利用JSONP跨域登录WEB系统(加强版))