單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。
SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。它包括可以將這次主要的登錄映射到其他應用中用於同一個用戶的登錄的機制。
當用戶第一次訪問應用系統1的時候,因為還沒有登錄,會被引導到認證系統中進行登錄;
根據用戶提供的登錄信息,認證系統進行身份效驗,如果通過效驗,應該返回給用戶一個認證的憑據--ticket;
用戶再訪問別的應用的時候就會將這個ticket帶上,作為自己認證的憑據,應用系統接受到請求之後會把ticket送到認證系統進行效驗,檢查ticket的合法性。如果通過效驗,用戶就可以在不用再次登錄的情況下訪問應用系統2和應用系統3了
實現步驟:
一,在winform上通過認證中心實現登陸
public CKey UserLogin(CUser cuser)
二,登陸後,認證中心要生成一個票據,並返回給winform
CKey ckey=new CKey (); ckey.client_key = DateTime.Now.ToString(); ckey.token = System.Guid.NewGuid().ToString () ; ckey.user = cuser.user; UpdateKey(ckey);
三,在winform如果要使用web的功能時
System.Diagnostics.Process.Start(@"http://localhost/WebLogin/Login.aspx?user=" + ckey.user + "&client_key=" + ckey.client_key + "&token=" + ckey.token);
四,web頁面需要到驗證中心去驗證
public bool UserCheck(CKey ckey)
五,OK
六,數據庫表
/**//****** 對象: Table [dbo].[Sys_user] 腳本日期: 05/21/2009 10:46:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Sys_user]( [username] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [pwd] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY] /**//****** 對象: Table [dbo].[token] 腳本日期: 05/21/2009 10:46:34 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[token]( [client_key] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [token] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [username] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [act_state] [nvarchar](2) COLLATE Chinese_PRC_CI_AS NOT NULL ) ON [PRIMARY]
本文配套源碼