单点登录1
来源:互联网 发布:淘宝一颗钻要多少信誉 编辑:程序博客网 时间:2024/04/27 17:52
1.首先在所有的分站建立一个基类,分站的页面都继承此基类,重写OnLoad方法
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获取主站凭证
RefPassport.TService tokenService = new RefPassport.TService();
object o = tokenService.TokenGetCredence(tokenValue);
if (o != null)
{
//令牌正确
Session["Token"] = o;
Session["TokenValue"] = tokenValue;
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://172.16.24.66/passport/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://172.16.24.66/passport/userlogin.aspx?BackURL=" + Server.UrlEncode(url);
}
}
}
- sso单点登录1
- 单点登录1
- 单点登录系统1
- Cas单点登录(1)原理
- 系统安全--1、单点登录原理
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- 单点登录
- //------------单点登录
- 单点登录
- The request sent by the client was syntactically incorrect - Spring mvc
- Qt C++ Observer模式(发布者-订阅者)
- 循环与数组问题2
- Mantis Administrator控制密码、注册不用邮件验证、添加测试员
- P2PSIP 网络电话系统的分析
- 单点登录1
- asp.net 返回结果前 按钮只能提交一次
- Kindle悄然来袭,当当“都看”2代如何反扑?
- Apache CXF实战之八 Map类型绑定
- OpenCL的一个简单例子!
- java字符串应用之字符串编码转换
- SQL 如何把同一列字段显示在同一行上
- sql server 在修改表结构时提示不允许保存更改提示时,如何解决
- 8205A 和DW01+