欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【基于.Net的单点登录(SSO)实现解决方案】,下面是详细的讲解!
基于.Net的单点登录(SSO)实现解决方案
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
namespace SSO.SiteA.Class
{
/// <summary>
/// 授权页面基类
/// </summary>
public class AuthBase : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
if (Session["Token"] !=null)
{
//分站凭证存在
Response.Write("恭喜,分站凭证存在,您被授权访问该页面!");
}
else
{
//令牌验证结果
if (Request.QueryString["Token"] !=null)
{
if (Request.QueryString["Token"] !="$Token$")
{
//持有令牌
string tokenValue=Request.QueryString["Token"];
//调用WebService获取主站凭证
SSO.SiteA.RefPassport.TokenService tokenService=new SSO.SiteA.RefPassport.TokenService();
object o=tokenService.TokenGetCredence(tokenValue);
if (o !=null)
{
//令牌正确
Session["Token"]=o;
Response.Write("恭喜,令牌存在,您被授权访问该页面!");
}
else
{
//令牌错误
Response.Redirect(this.replaceToken());
}
}
else
{
//未持有令牌
Response.Redirect(this.replaceToken());
}
}
//未进行令牌验证,去主站验证
else
{
Response.Redirect(this.getTokenURL());
}
}
base.OnLoad(e);
}
/// <summary>
/// 获取带令牌请求的URL
/// 在当前URL中附加上令牌请求参数
/// </summary>
/// <returns></returns>
private string getTokenURL()
{
string url=Request.Url.AbsoluteUri;
Regex reg=new Regex(@"^.*\?.+=.+$");
if (reg.IsMatch(url))
url +="&Token=$Token$";
else
url +="?Token=$Token$";
return "http://www.passport.com/gettoken.aspx?BackURL=" + Server.UrlEncode(url);
}
/// <summary>
/// 去掉URL中的令牌
/// 在当前URL中去掉令牌参数
/// </summary>
/// <returns></returns>
private string replaceToken()
{
string url=Request.Url.AbsoluteUri;
url=Regex.Replace(url, @"(\?|&)Token=.*", "", RegexOptions.IgnoreCase);
return "http://www.passport.com/userlogin.aspx?BackURL=" + Server.UrlEncode(url);
}
}//end class
}
关于基于.Net的单点登录(SSO)实现解决方案的用户互动如下:
相关问题:谁有SSO单点登录的简单实现代码。(最好是用 strut...
答:http://www.51aspx.com/CV/SSO/ 这个主要是用asp.net的 轻量级单点登录系统源码 实现原理: 使用使用 形式远程调用单点登录系统上的脚本,获取加密后的用户登录票据信息,自动绑定到当前页表单的相应字段,并自动提交到后台。后台解密前台提交的... >>详细
相关问题:.net实现 SSO 单点登录安全性如何?请高人指点
答:我们用.Net设计了框架实现了SSO,系统在公网运行将近两年了,涉及的数据是机密级别,没有发生数据丢失。 安全性主要靠设计,更多的安全设定才能保证安全,多次握手和多重加密,多设计一些交互的加密方式就好。 其实没有黑客的时候,这些东西并没... >>详细
相关问题:asp.net网站与JSP网站单点登录SSO的问题
答:是同一个域吗?如果2个网站是同一个域,可以用Cookie来实现同步,如果不是同一个域,而且2个网站的部署环境也不同,session同步的话应该有点难度。 >>详细
- 【asp】asp.net url重写浅谈-net-url重写
- 【DataSet】DataSet、DataTable、DataRow区别详解
- 【asp】asp.net 动态添加多个用户控件-net-动态添
- 【创建】ASP.NET Web API教程 创建域模型的方法详
- 【asp】asp.net ubb使用代码-net-ubb使用
- 【默认图片】图片不存在使用默认图片代替的实例
- 【asp】asp.net 页面转向 Response.Redirect Ser
- 【页面打印】关于ASP.NET页面打印技术的常用方法
- 【MVC5】MVC 5 第一章 创建MVC 5 web应用程序-net
- 【MVC】一个简单MVC5 + EF6示例分享-EF6实例-MVC5
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
