SlideShare a Scribd company logo
1 of 13
權限管理方式、ASPX 的權限元件
國立雲林科技大學 資訊管理系
陳信宏
權限管理方式 – 討論問題篇(一)
 權限的主體 =>人 vs 程式功能
 某公司情況:每一個群組內分成兩個位階(主管與員
工) 。整個群組有一組預設權限,主管權限=預設權限
+特加權限,員工權限=預設權限。使用者屬於群組,
可以不只一個群組,使用者權限=(群組主管權限 or 群
組員工權限)(n個)+特加權限。
 討論如何設計資料表。
 討論如何設計用來設定權限的功能與畫面。
 討論要執行功能前,如何得到使用者權限的機制。
 討論在Web中,如何防止用直接輸入網址來直接看功能
內容的情況。
權限資料表
功能清單
功能類別群組清單
員工清單
員工群組連結
(由欄位來設定主管
與一般員工)
群組預設功能
群組主管
特加功能
員工
特加功能
權限設定功能
 依照資料表內容,須有以下的功能
 (9010)群組清單設定、(9020)員工清單設定
 (9030)員工群組連結設定
 (9040)功能類別、(9050)功能清單
 (9060)群組預設功能
 (9070)主管特加功能、(9080)員工特加功能
 最後,依員工來查詢其所有權限的功能(未來在每支程
式中)
權限取得
 如何確認使用者身分?
 身分確認後,是一次撈出所有權限?還是要執行特定
功能時,再去查詢?
 一次撈出所有權限的SQL或是程式演算法?
 執行特定功能時,如何查詢是否有此功能的權限?
ASP.NET 身分辨識方法(一)
 基本身分辨識方式
 帳號 + 密碼
 密碼相關問題 → 放在Table中,是否要加密?
 加密方法
 對稱性加密(可用同一金鑰加密後,再解密回來) - DES
 非對稱性加密(用公開和私密金鑰來加解密) - RSA
 進階身分辨識方式
 自然人憑證
 生物特徵 → 指紋、面容、聲音、視網膜…
ASP.NET 身分辨識方法(二)
 ASP.NET 元件
 工具箱 → 登入 → Login 控制項
 重要屬性
 DestinationPageUrl → 登入成功後的 URL
 FailureAction → 登入失敗後的動作
 RememberMeSet → 『記憶密碼』方塊
 CreateUserUrl → 建立使用者帳號的 URL
 HelpPageUrl → 輔助性說明的 URL
 PasswordRecoveryUrl → 密碼恢復頁面 URL
ASP.NET 身分辨識方法(三)
 ASP.NET 元件
 工具箱→登入→ Login 控制項
 重要事件
 Authenticate →當進行身分驗證時,引發的事件,通常
在這兒寫自訂的檢驗程式碼
 LoggingIn →按下【登入】時,進行驗證前
 LoggedIn →按下【登入】時,通過驗證後
 LoginError→登入發生錯誤時
ASP.NET 身分辨識方法(五)
 Authenticate 範例程式碼
 ' 在此驗證使用者輸入的帳號與密碼
 Protected Sub lgnMain_Authenticate(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.AuthenticateEventArgs) Handles lgnMain.Authenticate
 Dim ReturnView As Data.DataView
 Dim Student_ID_Num As Integer
 Dim oMG As New MainGlobal
 ' 如果是學生以學號登入,則其 ID 長度為 8,全部都是數字
 ' sdsStudent 的 Select SQL
 ' SELECT * FROM [Student_Main] WHERE (([Student_ID] = @Student_ID) AND ([Password] =
@Password))
 ' 將使用者輸入的 UserName 和 Password 作為查詢條件
 Me.sdsStudent.SelectParameters("Student_ID").DefaultValue = Me.lgnMain.UserName '
TODO : 要測試 SQL Inject 攻擊
 Me.sdsStudent.SelectParameters("Password").DefaultValue = Me.lgnMain.Password
 ' 對 Student_Main 資料庫進行詢
 ReturnView = Me.sdsStudent.Select(New DataSourceSelectArguments)
ASP.NET 身分辨識方法(六)
 Authenticate 範例程式碼
 ' 若沒傳回任何資料,代表輸入的名稱或密碼錯誤
 If (ReturnView.Count = 0) Then
 e.Authenticated = False
 ' 當登入錯誤時,進行記錄
 oMG.WriteMainLog("ERROR", Request.UserHostAddress, Me.lgnMain.UserName, "", Session.SessionID, FUNC_ID + "_"
+ FUNC_NAME + "_" + VERSION_ID, "LogIn", "登入錯誤")
 Else
 ' 紀錄使用者的資料於 SESSION 物件中
 Session.Item("USER_ID") = ReturnView.Item(0).Item("Student_ID").ToString()
 Session.Item("USER_NAME") = ReturnView.Item(0).Item("C_First_Name").ToString()
 Session.Item("USER_TYPE") = "STD"
 e.Authenticated = True
 ' 設定學生的 Session 時間為 15 分鐘
 Session.Timeout = 15
 ' 寫入 Log
 oMG.WriteMainLog("INFO", Request.UserHostAddress, Session.Item("USER_ID").ToString,
Session.Item("USER_NAME"), Session.SessionID, FUNC_ID + "_" + FUNC_NAME + "_" + VERSION_ID, "LogIn", "使用者登入")
 ' 導到原來的頁面去
 FormsAuthentication.RedirectFromLoginPage(ReturnView.Item(0).Item("Email_ID").ToString(), True)
防止直接輸入網址查看內容的方式
 Web.Config的設定
 <system.web>
 <authentication mode="Forms">
 <forms name="MyAuthentication" loginUrl="/MKC/9000_AUTH/Func_9130.aspx" protection="All"
timeout="60" path="/">
 </forms>
 </authentication>
 程式的設定
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 ' 每支 Web 畫面必須要有這一段,來進行 Login 的驗證 - 2006.12.05 加入
 If (Not User.Identity.IsAuthenticated) Then
 FormsAuthentication.RedirectToLoginPage()
 End If
IIS 中的整體物件(一)
 Server – IIS 啟動後建立,可見域為所有的 Application
 Application – 網站上的某個特定程式或服務,可由 IIS
設定各種不同的 Application,而Application物件的生命
週期為此Application啟動到結束,可見域為此
Application
 Session – 一個特定的遠方連線,通常是由 IP/MAC +
瀏覽器類型來分辨,但若是同一個瀏覽器的不同分頁,
會被判斷成同一個Session
 Page – 指目前在瀏覽的頁面
IIS 中的整體物件(二)
 Request – 為前端瀏覽器對Page提出[需求]的行為,通
常可由其中看到網址與頁面名稱等資訊
 Response – IIS 對前端 Request 的回應,可自行加入
文字,對網頁程式的除錯很有用
 Cookie – 在前端放入一些特定的資訊,前端以檔案方式
存在,可用來辨識特定的前端,紀錄其行動與資訊。
 整體物件的使用 – 利用(.)來查看所有的Property和
Method

More Related Content

Viewers also liked

Mes 分析 第五週
Mes 分析 第五週Mes 分析 第五週
Mes 分析 第五週信宏 陳
 
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0信宏 陳
 
2010 與畢業校友有約─職場經驗分享
2010 與畢業校友有約─職場經驗分享2010 與畢業校友有約─職場經驗分享
2010 與畢業校友有約─職場經驗分享信宏 陳
 
Mes 分析 第六週
Mes 分析 第六週Mes 分析 第六週
Mes 分析 第六週信宏 陳
 
搜主意 App 提案計畫 for nsysu 20130409 130
搜主意 App 提案計畫 for nsysu 20130409 130搜主意 App 提案計畫 for nsysu 20130409 130
搜主意 App 提案計畫 for nsysu 20130409 130信宏 陳
 
Mes 實作 第二週
Mes 實作 第二週Mes 實作 第二週
Mes 實作 第二週信宏 陳
 
Mes 分析 第三週
Mes 分析 第三週Mes 分析 第三週
Mes 分析 第三週信宏 陳
 
App 的設計、開發、與行銷 設計篇 v1.0.0
App 的設計、開發、與行銷 設計篇 v1.0.0App 的設計、開發、與行銷 設計篇 v1.0.0
App 的設計、開發、與行銷 設計篇 v1.0.0信宏 陳
 
Mes 實作 第一週
Mes 實作 第一週Mes 實作 第一週
Mes 實作 第一週信宏 陳
 
Mes 概論 第六周
Mes 概論 第六周Mes 概論 第六周
Mes 概論 第六周信宏 陳
 
Mes 概論 第七週
Mes 概論 第七週Mes 概論 第七週
Mes 概論 第七週信宏 陳
 
Mes 概論 第八週
Mes 概論 第八週Mes 概論 第八週
Mes 概論 第八週信宏 陳
 
Mes 概論 第九週
Mes 概論 第九週Mes 概論 第九週
Mes 概論 第九週信宏 陳
 
Mes 概論 第三週
Mes 概論   第三週Mes 概論   第三週
Mes 概論 第三週信宏 陳
 
Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0信宏 陳
 
Mes 分析 第二週
Mes 分析 第二週Mes 分析 第二週
Mes 分析 第二週信宏 陳
 
Mes 概論 第二周
Mes 概論   第二周Mes 概論   第二周
Mes 概論 第二周信宏 陳
 
Mes 分析 第四週
Mes 分析 第四週Mes 分析 第四週
Mes 分析 第四週信宏 陳
 
Mes 概論 第四週
Mes 概論 第四週Mes 概論 第四週
Mes 概論 第四週信宏 陳
 
就職 創業 即戰力_20161214
就職 創業 即戰力_20161214就職 創業 即戰力_20161214
就職 創業 即戰力_20161214信宏 陳
 

Viewers also liked (20)

Mes 分析 第五週
Mes 分析 第五週Mes 分析 第五週
Mes 分析 第五週
 
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
那些 App 的兩三事 關於設計、開發、行銷的一些經驗分享 v1.0.0
 
2010 與畢業校友有約─職場經驗分享
2010 與畢業校友有約─職場經驗分享2010 與畢業校友有約─職場經驗分享
2010 與畢業校友有約─職場經驗分享
 
Mes 分析 第六週
Mes 分析 第六週Mes 分析 第六週
Mes 分析 第六週
 
搜主意 App 提案計畫 for nsysu 20130409 130
搜主意 App 提案計畫 for nsysu 20130409 130搜主意 App 提案計畫 for nsysu 20130409 130
搜主意 App 提案計畫 for nsysu 20130409 130
 
Mes 實作 第二週
Mes 實作 第二週Mes 實作 第二週
Mes 實作 第二週
 
Mes 分析 第三週
Mes 分析 第三週Mes 分析 第三週
Mes 分析 第三週
 
App 的設計、開發、與行銷 設計篇 v1.0.0
App 的設計、開發、與行銷 設計篇 v1.0.0App 的設計、開發、與行銷 設計篇 v1.0.0
App 的設計、開發、與行銷 設計篇 v1.0.0
 
Mes 實作 第一週
Mes 實作 第一週Mes 實作 第一週
Mes 實作 第一週
 
Mes 概論 第六周
Mes 概論 第六周Mes 概論 第六周
Mes 概論 第六周
 
Mes 概論 第七週
Mes 概論 第七週Mes 概論 第七週
Mes 概論 第七週
 
Mes 概論 第八週
Mes 概論 第八週Mes 概論 第八週
Mes 概論 第八週
 
Mes 概論 第九週
Mes 概論 第九週Mes 概論 第九週
Mes 概論 第九週
 
Mes 概論 第三週
Mes 概論   第三週Mes 概論   第三週
Mes 概論 第三週
 
Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0Android 系統的歷史、發展策略與技術創新 v1.1.0
Android 系統的歷史、發展策略與技術創新 v1.1.0
 
Mes 分析 第二週
Mes 分析 第二週Mes 分析 第二週
Mes 分析 第二週
 
Mes 概論 第二周
Mes 概論   第二周Mes 概論   第二周
Mes 概論 第二周
 
Mes 分析 第四週
Mes 分析 第四週Mes 分析 第四週
Mes 分析 第四週
 
Mes 概論 第四週
Mes 概論 第四週Mes 概論 第四週
Mes 概論 第四週
 
就職 創業 即戰力_20161214
就職 創業 即戰力_20161214就職 創業 即戰力_20161214
就職 創業 即戰力_20161214
 

Similar to Mes 實作 第四週

網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非Tony Deng
 
JavaScript 技術手冊第 5 章
JavaScript 技術手冊第 5 章JavaScript 技術手冊第 5 章
JavaScript 技術手冊第 5 章Justin Lin
 
jQuery底层架构
jQuery底层架构jQuery底层架构
jQuery底层架构fangdeng
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)RANK LIU
 
淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践taobao.com
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现hua qiu
 
面向开发的前端性能优化
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化li qiang
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniterBo-Yi Wu
 
Parse, cloud code 介紹
Parse, cloud code 介紹Parse, cloud code 介紹
Parse, cloud code 介紹wantingj
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程yiditushe
 
Cenet salon.220904-高性能数据架构设计
Cenet salon.220904-高性能数据架构设计Cenet salon.220904-高性能数据架构设计
Cenet salon.220904-高性能数据架构设计Lu Ming
 
mysql总结
mysql总结mysql总结
mysql总结haiwang
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsHo Kim
 
Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要yiditushe
 
EventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianEventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianJackson Tian
 

Similar to Mes 實作 第四週 (20)

網站設計100步
網站設計100步網站設計100步
網站設計100步
 
Javascript之昨是今非
Javascript之昨是今非Javascript之昨是今非
Javascript之昨是今非
 
JavaScript 技術手冊第 5 章
JavaScript 技術手冊第 5 章JavaScript 技術手冊第 5 章
JavaScript 技術手冊第 5 章
 
jQuery底层架构
jQuery底层架构jQuery底层架构
jQuery底层架构
 
JavaScript 脚本控件(二)
JavaScript 脚本控件(二)JavaScript 脚本控件(二)
JavaScript 脚本控件(二)
 
淘宝开放产品前端实践
淘宝开放产品前端实践淘宝开放产品前端实践
淘宝开放产品前端实践
 
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
 
面向开发的前端性能优化
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化
 
Script with engine
Script with engineScript with engine
Script with engine
 
advanced introduction to codeigniter
advanced introduction to codeigniteradvanced introduction to codeigniter
advanced introduction to codeigniter
 
Parse, cloud code 介紹
Parse, cloud code 介紹Parse, cloud code 介紹
Parse, cloud code 介紹
 
Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程Struts+Spring+Hibernate整合教程
Struts+Spring+Hibernate整合教程
 
Cenet salon.220904-高性能数据架构设计
Cenet salon.220904-高性能数据架构设计Cenet salon.220904-高性能数据架构设计
Cenet salon.220904-高性能数据架构设计
 
mysql总结
mysql总结mysql总结
mysql总结
 
Hibernate教程
Hibernate教程Hibernate教程
Hibernate教程
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
Hibernate
HibernateHibernate
Hibernate
 
Spring入门纲要
Spring入门纲要Spring入门纲要
Spring入门纲要
 
J query
J queryJ query
J query
 
EventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianEventProxy introduction - JacksonTian
EventProxy introduction - JacksonTian
 

More from 信宏 陳

資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx信宏 陳
 
Ptyhon 教學 003 函數
Ptyhon 教學 003 函數Ptyhon 教學 003 函數
Ptyhon 教學 003 函數信宏 陳
 
React Native App設計與開發專題研習課程 006
React Native App設計與開發專題研習課程 006React Native App設計與開發專題研習課程 006
React Native App設計與開發專題研習課程 006信宏 陳
 
React Native App 設計與開發專題研習課程 005
React Native App 設計與開發專題研習課程 005React Native App 設計與開發專題研習課程 005
React Native App 設計與開發專題研習課程 005信宏 陳
 
React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 004React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 004信宏 陳
 
React Native App 設計與開發專題研習課程 003
React Native App 設計與開發專題研習課程 003React Native App 設計與開發專題研習課程 003
React Native App 設計與開發專題研習課程 003信宏 陳
 
React Native App 設計與開發專題研習課程 002
React Native App 設計與開發專題研習課程 002React Native App 設計與開發專題研習課程 002
React Native App 設計與開發專題研習課程 002信宏 陳
 
React Native App 設計與開發專題研習課程 001
React Native App 設計與開發專題研習課程 001React Native App 設計與開發專題研習課程 001
React Native App 設計與開發專題研習課程 001信宏 陳
 
Ptyhon 教學 002 程式流程控制(while-for)
Ptyhon 教學 002 程式流程控制(while-for)Ptyhon 教學 002 程式流程控制(while-for)
Ptyhon 教學 002 程式流程控制(while-for)信宏 陳
 
Ptyhon 教學 001 程式流程控制(if-elif-else)
Ptyhon 教學 001 程式流程控制(if-elif-else)Ptyhon 教學 001 程式流程控制(if-elif-else)
Ptyhon 教學 001 程式流程控制(if-elif-else)信宏 陳
 
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式信宏 陳
 
Mes 實作 第三週
Mes 實作 第三週Mes 實作 第三週
Mes 實作 第三週信宏 陳
 

More from 信宏 陳 (12)

資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
資訊管理專題研討_資管人的職場方向與能力修練_20210310.pptx
 
Ptyhon 教學 003 函數
Ptyhon 教學 003 函數Ptyhon 教學 003 函數
Ptyhon 教學 003 函數
 
React Native App設計與開發專題研習課程 006
React Native App設計與開發專題研習課程 006React Native App設計與開發專題研習課程 006
React Native App設計與開發專題研習課程 006
 
React Native App 設計與開發專題研習課程 005
React Native App 設計與開發專題研習課程 005React Native App 設計與開發專題研習課程 005
React Native App 設計與開發專題研習課程 005
 
React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 004React Native App 設計與開發專題研習課程 004
React Native App 設計與開發專題研習課程 004
 
React Native App 設計與開發專題研習課程 003
React Native App 設計與開發專題研習課程 003React Native App 設計與開發專題研習課程 003
React Native App 設計與開發專題研習課程 003
 
React Native App 設計與開發專題研習課程 002
React Native App 設計與開發專題研習課程 002React Native App 設計與開發專題研習課程 002
React Native App 設計與開發專題研習課程 002
 
React Native App 設計與開發專題研習課程 001
React Native App 設計與開發專題研習課程 001React Native App 設計與開發專題研習課程 001
React Native App 設計與開發專題研習課程 001
 
Ptyhon 教學 002 程式流程控制(while-for)
Ptyhon 教學 002 程式流程控制(while-for)Ptyhon 教學 002 程式流程控制(while-for)
Ptyhon 教學 002 程式流程控制(while-for)
 
Ptyhon 教學 001 程式流程控制(if-elif-else)
Ptyhon 教學 001 程式流程控制(if-elif-else)Ptyhon 教學 001 程式流程控制(if-elif-else)
Ptyhon 教學 001 程式流程控制(if-elif-else)
 
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
不同尺寸與解析度的螢幕下,Android 程式 UI 的設計與解決方式
 
Mes 實作 第三週
Mes 實作 第三週Mes 實作 第三週
Mes 實作 第三週
 

Mes 實作 第四週

  • 2. 權限管理方式 – 討論問題篇(一)  權限的主體 =>人 vs 程式功能  某公司情況:每一個群組內分成兩個位階(主管與員 工) 。整個群組有一組預設權限,主管權限=預設權限 +特加權限,員工權限=預設權限。使用者屬於群組, 可以不只一個群組,使用者權限=(群組主管權限 or 群 組員工權限)(n個)+特加權限。  討論如何設計資料表。  討論如何設計用來設定權限的功能與畫面。  討論要執行功能前,如何得到使用者權限的機制。  討論在Web中,如何防止用直接輸入網址來直接看功能 內容的情況。
  • 4. 權限設定功能  依照資料表內容,須有以下的功能  (9010)群組清單設定、(9020)員工清單設定  (9030)員工群組連結設定  (9040)功能類別、(9050)功能清單  (9060)群組預設功能  (9070)主管特加功能、(9080)員工特加功能  最後,依員工來查詢其所有權限的功能(未來在每支程 式中)
  • 5. 權限取得  如何確認使用者身分?  身分確認後,是一次撈出所有權限?還是要執行特定 功能時,再去查詢?  一次撈出所有權限的SQL或是程式演算法?  執行特定功能時,如何查詢是否有此功能的權限?
  • 6. ASP.NET 身分辨識方法(一)  基本身分辨識方式  帳號 + 密碼  密碼相關問題 → 放在Table中,是否要加密?  加密方法  對稱性加密(可用同一金鑰加密後,再解密回來) - DES  非對稱性加密(用公開和私密金鑰來加解密) - RSA  進階身分辨識方式  自然人憑證  生物特徵 → 指紋、面容、聲音、視網膜…
  • 7. ASP.NET 身分辨識方法(二)  ASP.NET 元件  工具箱 → 登入 → Login 控制項  重要屬性  DestinationPageUrl → 登入成功後的 URL  FailureAction → 登入失敗後的動作  RememberMeSet → 『記憶密碼』方塊  CreateUserUrl → 建立使用者帳號的 URL  HelpPageUrl → 輔助性說明的 URL  PasswordRecoveryUrl → 密碼恢復頁面 URL
  • 8. ASP.NET 身分辨識方法(三)  ASP.NET 元件  工具箱→登入→ Login 控制項  重要事件  Authenticate →當進行身分驗證時,引發的事件,通常 在這兒寫自訂的檢驗程式碼  LoggingIn →按下【登入】時,進行驗證前  LoggedIn →按下【登入】時,通過驗證後  LoginError→登入發生錯誤時
  • 9. ASP.NET 身分辨識方法(五)  Authenticate 範例程式碼  ' 在此驗證使用者輸入的帳號與密碼  Protected Sub lgnMain_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles lgnMain.Authenticate  Dim ReturnView As Data.DataView  Dim Student_ID_Num As Integer  Dim oMG As New MainGlobal  ' 如果是學生以學號登入,則其 ID 長度為 8,全部都是數字  ' sdsStudent 的 Select SQL  ' SELECT * FROM [Student_Main] WHERE (([Student_ID] = @Student_ID) AND ([Password] = @Password))  ' 將使用者輸入的 UserName 和 Password 作為查詢條件  Me.sdsStudent.SelectParameters("Student_ID").DefaultValue = Me.lgnMain.UserName ' TODO : 要測試 SQL Inject 攻擊  Me.sdsStudent.SelectParameters("Password").DefaultValue = Me.lgnMain.Password  ' 對 Student_Main 資料庫進行詢  ReturnView = Me.sdsStudent.Select(New DataSourceSelectArguments)
  • 10. ASP.NET 身分辨識方法(六)  Authenticate 範例程式碼  ' 若沒傳回任何資料,代表輸入的名稱或密碼錯誤  If (ReturnView.Count = 0) Then  e.Authenticated = False  ' 當登入錯誤時,進行記錄  oMG.WriteMainLog("ERROR", Request.UserHostAddress, Me.lgnMain.UserName, "", Session.SessionID, FUNC_ID + "_" + FUNC_NAME + "_" + VERSION_ID, "LogIn", "登入錯誤")  Else  ' 紀錄使用者的資料於 SESSION 物件中  Session.Item("USER_ID") = ReturnView.Item(0).Item("Student_ID").ToString()  Session.Item("USER_NAME") = ReturnView.Item(0).Item("C_First_Name").ToString()  Session.Item("USER_TYPE") = "STD"  e.Authenticated = True  ' 設定學生的 Session 時間為 15 分鐘  Session.Timeout = 15  ' 寫入 Log  oMG.WriteMainLog("INFO", Request.UserHostAddress, Session.Item("USER_ID").ToString, Session.Item("USER_NAME"), Session.SessionID, FUNC_ID + "_" + FUNC_NAME + "_" + VERSION_ID, "LogIn", "使用者登入")  ' 導到原來的頁面去  FormsAuthentication.RedirectFromLoginPage(ReturnView.Item(0).Item("Email_ID").ToString(), True)
  • 11. 防止直接輸入網址查看內容的方式  Web.Config的設定  <system.web>  <authentication mode="Forms">  <forms name="MyAuthentication" loginUrl="/MKC/9000_AUTH/Func_9130.aspx" protection="All" timeout="60" path="/">  </forms>  </authentication>  程式的設定 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load  ' 每支 Web 畫面必須要有這一段,來進行 Login 的驗證 - 2006.12.05 加入  If (Not User.Identity.IsAuthenticated) Then  FormsAuthentication.RedirectToLoginPage()  End If
  • 12. IIS 中的整體物件(一)  Server – IIS 啟動後建立,可見域為所有的 Application  Application – 網站上的某個特定程式或服務,可由 IIS 設定各種不同的 Application,而Application物件的生命 週期為此Application啟動到結束,可見域為此 Application  Session – 一個特定的遠方連線,通常是由 IP/MAC + 瀏覽器類型來分辨,但若是同一個瀏覽器的不同分頁, 會被判斷成同一個Session  Page – 指目前在瀏覽的頁面
  • 13. IIS 中的整體物件(二)  Request – 為前端瀏覽器對Page提出[需求]的行為,通 常可由其中看到網址與頁面名稱等資訊  Response – IIS 對前端 Request 的回應,可自行加入 文字,對網頁程式的除錯很有用  Cookie – 在前端放入一些特定的資訊,前端以檔案方式 存在,可用來辨識特定的前端,紀錄其行動與資訊。  整體物件的使用 – 利用(.)來查看所有的Property和 Method