Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET N i dung Thi t k & L p trình Web M t s khái ni m v B o m t Các c p Bài B om t b o m t m t ng d ng ASP.NET ng nh p, Qu n lý thành viên, phân quy n ASP.NET ng d ng Web ASP.NET Ths Tr n Th Bích H nh Khoa CNTT – H.KHTN © 2009 Khoa Cơng ngh thơng tin Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET N i dung © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET M t s Khái ni m B o m t M t s khái ni m v B o m t Authentication – Ch ng th c Các c p – Qui trình ch ng th c ng b o m t m t ng d ng ASP.NET – Th ng yêu c u ng kh u ng nh p, Qu n lý thành viên, phân quy n ASP.NET i dùng i dùng nh p Tên ng nh p & m t Authorization A th i ti – C p quy n – Qui trình quy t nh user ã ch ng th c tài nguyên nh t nh – Th ng c p quy n d a Lo i ng authorization) © 2009 Khoa CNTT - HKHTN © 2009 Khoa CNTT - HKHTN c phép truy c p i dùng (role-based Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET N i dung Các c p M t s khái ni m v B o m t IIS Các c p b o m t ASP NET ASP.NET ASP.NET b o m t m t ng d ng ASP.NET ng nh p, Qu n lý thành viên, phân quy n ASP.NET © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET IIS Security IIS Security Là c p b o m t u tiên n webpage (request) (request) Các b © 2009 Khoa CNTT - c th c hi n có yêu c u c ki m tra: – IIS ki m t tra a ch IP c a request có h t ó domain hay không – Ch ng th c ng C gt g ct truy c p vào i dùng (n u c n) dù g ( ) – N u thành công chuy n request qua ASP.NET – Ng c l i thông báo cho ng g g g truy c p i dùng bi t không g g © 2009 Khoa CNTT - HKHTN c phép p p © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Các hình th c ch ng th c IIS Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET IIS Anonymous Authentication Anonymous M c nh IIS cho phép anonymous truy c p vào m t ng d ng Web Basic Digest Integrated Windows Authentication Certificate © 2009 Khoa CNTT - HKHTN 10 Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET IIS Basic & Digest Authentication © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET IIS Integrated Windows Authentication Basic IIS ch ng th c user v i tài kho n user Windows – Yê c u user nh p username & password Yêu h d – Username & password – Username & password server Khi s d ng m ng intranet, Windows Authentication cho phép IIS quy t nh yêu c u c a ng i dùng d a vào vi c ng nh p c a user Windows c mã hóa truy n qua HTTP header c ki m tra kh p v i tài kho n Windows – Ch nên s d ng v i HTTPS Digest – Password c x lý v i hàm hash g i lên server – Server th c hi n x lý v i hàm hash v i password server ki m tra v i giá tr nh n c 11 © 2009 Khoa CNTT - HKHTN 12 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET IIS Certificate Authentication Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET ASP.NET Security ASP NET Certificate – S d ng certificate c a user th c th c hi n vi c ch ng – Trong mã hóa khóa cơng khai (public-key cryptography) m t certificate s d ng m t ch ký i n t (digital signature) m t khóa cơng khai i kèm v i nh danh ng i dùng 13 © 2009 Khoa CNTT - HKHTN 14 © 2009 Khoa CNTT - Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Impersonation M c HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Impersonation nh Impersonation disabled Khi thi t l p impersonation enabled cho m t ng d ng Web, Web ng d ng s c th c thi d i nh danh c ch nh b i m t security token truy n t IIS – T t c ASP.NET request c th c thi b i nh danh m c nh dành cho cho ng d ng ASP.NET • Tài kho n ASPNET t ng c t o cài NET Framework • Tài kho n NETWORK SERVICE c nh ngh a s n Windows Server 2003 có quy n truy c p nh tài kho n ASPNET S d ng impersonation – ng d ng web d a vào IIS ch ng th c user – Server cho phép host nhi u ng d ng t nhi u khách hàng khác p p g g g nhau, cung c p cho m i ng d ng web m t tài kho n Windows riêng bi t ng n không cho ng d ng truy c p vào tài nguyên c a ng d ng khác // Web.Config 15 © 2009 Khoa CNTT - HKHTN 16 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Code Access Security Tính n ng Qui Q i Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Trust Levels c h tr CLR Full – T t c NET class NET l nh nh ng ràng b c cho phép l i mã l nh t h h bu h lo ã h assembly bl c quy n th c thi c phép s d ng & th c thi High – Trust level m t t p lu t nh ngh a class g g NET Framework mà ng d ng ASP.NET c phép s d ng – Không c s d ng unmanaged code, enterprise services code services, reflection Medium – // Web.config level= Medium /> ng d ng ch c phép truy xu t c u trúc th m c c a Low – R d l application Read-only li ti Minimal – Khơng 17 © 2009 Khoa CNTT - HKHTN 18 Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET ASP.NET ASP NET Authentication c phép truy c p tài nguyên © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Forms Authentication None – ASP NET khô th c hi n vi c ASP.NET không i ch ng th c Windows – S d ng k t qu t c ch ch ng th c c u hình c a IIS Forms – Cho phép ch ng th c thông qua form ng nh p o g Passport – S d ng d ch v ch ng th c c a Mi Microsoft Passport ft P t 19 © 2009 Khoa CNTT - HKHTN 20 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Forms Authentication Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Forms Authentication Thu c tính Ý ngh a Cookieless (UseDefaultProfile) Qui nh vi c ch ng th c l u cookie: UseCookies, UseUri (nhúng ticket URL), AutoDetect defaultUrl ng d n g thành công loginUrl ng d n n trang web sau ch ng th c user g g n trang login protection (All) q ( ) requireSSL (false) 21 © 2009 Khoa CNTT - HKHTN © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET N i dung Thu c tính Ý ngh a domain Domain ch ng th c cookie enableCrossAppRedirects (false) Cho phép nhi u ng d ng web s d ng ch ng th c name Tên cookie path Yêu c u s d ng k t n i SSL truy n d li u g y 22 Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Forms Authentication Qui nh cách th c mã hóa authentication ticket: All (hash & encrypte), Encryption, None, Validation (check ticket có b s a i) M t s khái ni m v B o m t Các c p ng nh p, Qu n lý thành viên, phân quy n ASP.NET ng d n cho cookie slidingExpiration (false) Reset l i th i gian expire c a cookie sau l n truy c p cu i timeout (30 phút) Qui b o m t m t ng d ng ASP.NET nh th i gian expire c a cookie // Web.Config i i @ i smtpSender.DeliveryMethod = SmtpDeliveryMethod.Network; smtpSender.EnableSsl = true; smtpSender.Send(e.Message); } catch (Exception ex) { Response.Write("There was a problem sending the email " + ex); R W it ("Th bl di th il ) / ilS i } e.Cancel = true; … } 35 { SmtpClient smtpSender = new SmtpClient(“smtp server”, “smtp port”); © 2009 Khoa CNTT - HKHTN 36 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET L y thông tin c u hình Mail Server Web config hình Web.config X ly l i G i mail using System.Web.Configuration; using System Net Configuration; System.Net.Configuration; Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath); MailSettingsSectionGroup settings = (MailSettingsSectionGroup)config.GetSectionGroup("system.net/mailSettings"); // settings.Smtp.Network.Host // settings.Smtp.Network.Port protected void PasswordRecovery1_SendMailError(object sender, SendMailErrorEventArgs e) // settings.Smtp.Network.Username // settings.Smtp.Network.Password { e.Handled = true; PasswordRecovery1.SuccessText = e.Exception.Message; } 37 © 2009 Khoa CNTT - 38 HKHTN © 2009 Khoa CNTT - Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET C u hình s B HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET d ng Database riêng cho Membership & Role C u hình s B c 1: Th c thi ASP.NET Sql Server Registration Tool t o CSDL d ng Database riêng cho Membership & Role c1 – WINDOWS\Microsoft.NET\Framework\2.0.xxxx\ p g q aspnet_regsql.exe B c 2: C u hình ConnectionString Membership ConnectionString, Provider & Role Provider Web.Config B c 3: S d ng Web Site Administration Tool hình phân quy n p q y c u http://www.codedigest.com/FAQ/16 How to Configure ASP Net Membership http://www codedigest com/FAQ/16-How-to-Configure-ASP-Net-MembershipProviders-to-Use-Our-Own-Database-.aspx – Menu > Website > ASP.NET Configuration 39 © 2009 Khoa CNTT - HKHTN 40 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET C u hình s B d ng Database riêng cho Membership & Role Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET C u hình s c2 B > d ng Database riêng cho Membership & Role c (tt) < t b> 47 © 2009 Khoa CNTT - HKHTN 48 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET Ví d - Hi n th danh sách Roles CheckBoxList Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET T ng k t Membership & Role Select user roles: 49 © 2009 Khoa CNTT - HKHTN 50 © 2009 Khoa CNTT - HKHTN ... com/FAQ/16-How-to-Configure-ASP-Net-MembershipProviders-to-Use-Our-Own-Database-.aspx – Menu > Website > ASP.NET Configuration 39 © 2009 Khoa CNTT - HKHTN 40 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9:. .. CNTT - HKHTN 26 Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET ASP.NET Login Controls ASP NET © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET. .. CNTT - HKHTN 12 © 2009 Khoa CNTT - HKHTN Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET IIS Certificate Authentication Thi t k & L p trình Web – Bài 9: B o m t ng d ng Web ASP.NET ASP.NET