Web Service入門 #6,統一管理帳號、密碼的登入

假設某企業有幾個網站(網頁程式)與系統(Windows程式),不想各自管理自己的員工帳號。

可以透過Web Service的方式,向同一台主機來作查詢。





之前有一系列的 Web Service入門文章,沒看過的讀者請參閱:http://www.dotblogs.com.tw/mis2000lab/Tags/Web%20Service/default.aspx

之前也有提過「會員登入、帳號密碼的檢查」功能,請看 :http://www.dotblogs.com.tw/mis2000lab/Tags/%E6%9C%83%E5%93%A1%E7%AE%A1%E7%90%86/default.aspx

===================================================================

如果要把上面兩個功能合併起來的話,就是一個簡單的有點類似於Single Sign-On的功能了

(但,本範例 "不是" 真正的Single Sign-On)。

註解: 關於「真正的」Single Sign-On,可以看看 Topcat這篇文章 -- http://blog.blueshop.com.tw/topcat/archive/2008/04/03/54681.aspx

 

假設某企業有幾個網站(網頁程式)與系統(Windows程式),不想各自管理自己的員工帳號。

可以透過Web Service的方式,向同一台主機來作查詢。請看下圖。

 

首先,先寫好 Web Service(一個 .asmx檔案,之前的文章有講過了)來作帳號與密碼的檢查。

 

 

 

 

13 <WebMethod()> _
14   Public Function User_Login() Function User_Login(ByVal Login_Name As String, ByVal Login_passwd As String) As String
15 
16         '---- 1. 為了避免SQL Injection攻擊,發現可疑字將會立刻阻擋!---------------
17                 '......Sorry....省  略......
18 
19         '---- 2. 檢查帳號與密碼 --------------------------------------------------------------------------
20         '----     驗證成功,傳回OK。    失敗傳回EOF。
21         Dim return_str As String = "EOF"
22 
23         If (通過了第一部份,SQL Injection的檢驗) Then
24             Dim Conn As SqlConnection = New SqlConnection
27             Conn.ConnectionString = "資料庫的連結字串"
28             Conn.Open()   '-- 連結DB
29 
30             Dim cmd As SqlCommand = New SqlCommand("select count(id) from 會員資料庫 where 帳號 = '" & Login_Name & "' and 密碼 = '" & Login_passwd & "'", Conn)
31             Dim j As Integer = cmd.ExecuteScalar()
32 
33             If j <> 0 Then    '--找到資料
34                 return_str = "OK" 
35             End If
36             cmd.Cancel()
37             Conn.Close()
38             Conn.Dispose()
39         End If
40 
41         Return return_str
42   End Function

 

接下來,要撰寫一個 ASP.NET程式了。範例User_Login.aspx畫面設計如下,超簡單的。

 

然後,把事先寫好的Web Service「加入Web參考」。這些步驟,之前的文章都講過了。

 

範例User_Login.aspx 後置程式碼如下:

1     Protected Sub Button1_login_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1_login.Click
2         Dim ws As New localhost.Service_7_Login
3
4         If ws.User_Login(TextBox1.Text, TextBox2.Text) = "OK" Then
5             Label1.Text = "<font color=blue>通過!</font>"
6         Else
7             Label1.Text = "<font color=red>帳號、密碼錯誤!</font>"
8         End If
9     End Sub

 

完成了,很簡單。

要說缺點的話,Web Service的反應時間稍微慢了一點,這是當然。

如果那台會員資料庫掛點,那全公司的會員登入都無法運作了(不過,備份與維運這方面,[應該]不是程式設計師負責的,這該是MIS人員管的)

 

但好處就很多,例如:大家不用各自撰寫「自己的會員登入程式(各自寫的話,品質良莠不齊)」去檢查帳號、密碼。

如同上面的程式,直接引用別人的Web Service來用就好了。

 

 

目前正在整理「範例集」這本書的範例,也順便寫稿子。

臨時多加入的一個小範例。關於之前在BLOG發表過的 Web Service相關文章,都收錄進去了。

寫得比較詳細,圖文並茂的話,一章就寫了快五十頁。

 

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------

 關於本網站的 Web Service,已經發表一系列文章,

請看:http://www.dotblogs.com.tw/mis2000lab/Tags/Web%20Service/default.aspx

 

2009/11/10補充:  本系列 Web Service文章已經延伸許多範例與程式,並撰寫成書本裡面的一章,

      將會發表在這一本書裡面,請看:[預告]ASP.NET專題實務(下集)-- 範例集與.NET 4.0新功能

 

.NET 4.5 / VS 2012新書上市,本文已經收錄在書本裡面

 

Xp13157

微軟 MVP的 ASP.NET 4.5 專題實務 ( II )-範例應用與 4.5 新功能

【VB / C# 雙語法】

MIS2000 Lab. 周棟祥、吳進魯

  • 出版商:松崗
  • 出版日期:2013-08-08
  • 台幣定價:
  • $820
  • 售價:7.6 折 $623  超商取貨 滿350元 免運費
  •  
  • 頁數:1096 !!! (另有 五章 PDF電子書放在光碟內)
  • ISBN:9572241729
  • EAN:9789572241721

 

天瓏書局(網路書店)http://www.tenlong.com.tw/items/9572241729?item_id=620531

超商取貨 滿350元 免運費

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net



ASP.NET遠距教學、線上課程(Web Form + MVC)。 第二門 課程「四折」-- 以MVC課程 作優惠。
第一天課程, "完整" 試聽。  如不滿意  全額退費!
................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

*********************************************************************************************

*** ASP.NET MVC線上課程 第一天 免費看 (5.5小時) *** 

************************************************************(歡迎索取,免費申請)*****

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

    MIS2000 Lab.  線上教學影片(YouTube) **免費觀賞**