程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 從winform到web的完成單點登陸

從winform到web的完成單點登陸

編輯:關於.NET

單點登錄(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]

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved