您的位置:首页 > 移动开发 > WebAPP

轻量级单点登录系统最佳实践(八)——5.3. 企业门户系统系统演示SSOLab.Portal.WebApp

2009-05-04 20:04 507 查看
l Default.aspx企业门户系统首页。显示当前用户信息和应用系统链接。

l Default.aspx.cs企业门户系统首页后台代码。

l SSOController.aspxs企业门户系统单点登录控制页。使用<script type="text/javascript" src="http://localhost:7771/SSOSite/SSOContext.aspx?app=portal"> </script>形式Get单点登录系统上下文信息,自动绑定到Form相应字段并自动提交到后台。

l SSOController.aspx.cs企业门户系统单点登录控制页后台代码。接受前台提交的信息,对用户信息进行解密,判定当前用户是否登录。如果已登录返回系统首页,如果没有登录,跳转到单点登录系统登录页。

Default.aspx

Code

using System;

using System.Collections.Generic;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.Security;

using SSOLab.SSOServer.Components;

using System.Xml;

namespace SSOLab.Portal.WebApp

{

public partial class SSOController : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!String.IsNullOrEmpty(Request.Params["isSubmit"]) && Request.Params["isSubmit"] == "1")

{

try

{

string ssoKey = "Xj1wD4DT7UicRVxOBJdjAg2AjErHkoEDlB9GqMJtYMwbfbnc9slagStcVt0Y3lY0XVKDnn6nO9cnCPDwM0tJU6iCBlWEoomDfjAjhobLurOxHR8ua8a25NGNQXQ1Q34X";

string userInfo = SSOUtil.DESDecrypt(Request.Params["sso_userinfo"], ssoKey.Substring(ssoKey.Length / 2 - 1, 8));

Response.Write(userInfo);

XmlDocument xmlDoc = new XmlDocument();

xmlDoc.LoadXml(userInfo);

if (xmlDoc.SelectSingleNode("/userinfo/islongin").InnerText == "true")

{

FormsAuthentication.RedirectFromLoginPage(xmlDoc.SelectSingleNode("/userinfo/username").InnerText, false);

}

else

{

string returnUrl = SSOUtil.GetHostUrl() + FormsAuthentication.LoginUrl;

Response.Redirect(Request.Params["sso_signinurl"] + "?ReturnUrl=" + HttpUtility.UrlEncode(returnUrl));

}

}

catch (Exception ex)

{

Response.Write(ex.Message);

}

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: