假設某企業有幾個網站(網頁程式)與系統(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 後置程式碼如下:
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新書上市,本文已經收錄在書本裡面
微軟 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
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
......... facebook社團 https://www.facebook.com/mis2000lab ......................
......... YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。