Tải bản đầy đủ (.pdf) (13 trang)

Bài 9: Thiết kê và lập trình web với ASP.NET - Bảo mật ứng dụng web ASP.NET

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.76 MB, 13 trang )

Thitk & Lp trình Web 2
Bài 9
BoBomtmt ngng dngdng Web ASP.NETWeb ASP.NET
Ths. TrnTh Bích Hnh
Khoa CNTT Khoa CNTT –– H.KHTNH.KHTN
© 2009 Khoa Công ngh thông tin
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
NiNi
dungdung
NiNi
dungdung
 Mts khái nimv Bomt
 Các cp đ bomt trong mt ng dng ASP.NET
 ng nhp, Qun lý thành viên, phân quyn trong
A
SP.NET
© 2009 Khoa CNTT - HKHTN
2
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
NiNi
dungdung
NiNi
dungdung
 Mts khái nimv Bomt
 Các cp đ bomt trong mt ng dng ASP.NET
 ng nhp, Qun lý thành viên, phân quyn trong
A
SP.NET
© 2009 Khoa CNTT - HKHTN
3
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET


MtMt
ss
KháiKhái
nimnim
BoBo
mtmt
MtMt
ss
KháiKhái
nimnim
BoBo
mtmt
 Authentication – Chng thc

Qui trình chng thcngi dùng
– Thng yêu cungi dùng nhpTênđng nhp& mt
khu
khu
Ath i ti
C


A
u
th
or
i
za
ti
on –

C
p quy

n
– Qui trình quyt đnh user đãchng thc đc phép truy cp
các
tài
nguyên
nht
đnh
các
tài
nguyên
nht
đnh
– Thng cp quyndatrênLoingi dùng (role-based
authorization)
© 2009 Khoa CNTT - HKHTN
4
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
NiNi
dungdung
NiNi
dungdung
 Mts khái nimv Bomt
 Các cp đ bomt trong mt ng dng ASP.NET
 ng nhp, Qun lý thành viên, phân quyn trong
A
SP.NET
© 2009 Khoa CNTT - HKHTN

5
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CácCác
cpcp
đđ
bobo
mtmt
trongtrong
ASP NETASP NET
CácCác
cpcp
đđ
bobo
mtmt
trongtrong
ASP
.
NETASP
.
NET
 IIS
 ASP.NET
© 2009 Khoa CNTT - HKHTN
6
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
IIS SecurityIIS Security
IIS

SecurityIIS


Security
 Là cp đ bomt đutiênđcthchin khi có yêu cu
đn
webpage (request)
đn
webpage

(request)
.
 Các bckimtra:
IIS
ki
t
đ
h
IP

t
ó
đ
t

à

IIS

ki
m
t
ra

đ
ac
h
IP
c

a reques
t
c
ó
đ
c
t
ruy c

pv
à
o
domain hay không

C
h

n
g
t
h
c
n
g

i

n
g
(
n
u
c
n
)
C  g
t c
g
dù g
(
u
c
)
– Nu thành công chuyn request qua ASP.NET

N
g


cl

i thôn
g
báo cho n
g

i dùn
g
bit khôn
g
đ

c
p

p
g 

g
g
g
g

pp
truy cp
© 2009 Khoa CNTT - HKHTN
7
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
IIS SecurityIIS Security
IIS

SecurityIIS

Security
© 2009 Khoa CNTT - HKHTN
8

Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CácCác
hìnhhình
thcthc
chngchng
thcthc
trongtrong
IISIIS
CácCác
hìnhhình
thcthc
chngchng
thcthc
trongtrong
IISIIS
 Anonymous
 Basic
 Digest
 Integrated Windows Authentication
 Certificate
© 2009 Khoa CNTT - HKHTN
9
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
IIS Anonymous AuthenticationIIS Anonymous Authentication
IIS

Anonymous

AuthenticationIIS


Anonymous

Authentication
 Mc đnh IIS cho phép anonymous truy cpvàomt ng
dng
Web
dng
Web
© 2009 Khoa CNTT - HKHTN
10
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
IIS Basic & Digest AuthenticationIIS Basic & Digest Authentication
IIS

Basic

&

Digest

AuthenticationIIS

Basic

&

Digest

Authentication
 Basic



h
&d


uc

uuser n
h
p username
&
passwor
d
– Username & password đc mã hóa và truyn qua HTTP header

Username & password
đc
kim
tra
khp
vi
tài
khon
Windows
Username

&

password


đc
kim
tra
khp
vi
tài
khon
Windows

trên server
– Ch nên s dng viHTTPS
 Digest
Password
đc
x

vi
hàm
hash

gi
lên
server

Password

đc
x


vi
hàm
hash


gi
lên
server
– Server thchin cùng x lý vi hàm hash vi password trên server
và kimtravigiátr nhn đc
© 2009 Khoa CNTT - HKHTN
11
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
IIS Integrated Windows AuthenticationIIS Integrated Windows Authentication
IIS

Integrated

Windows

AuthenticationIIS

Integrated

Windows

Authentication
 IIS chng thc user vi tài khon user trên Windows
 Khi s dng trong mng intranet, Windows Authentication
cho phép IIS quyt đnh yêu cucangi dùng davào

vic
đng
nhp
ca
user
trên
Windows
vic
đng
nhp
ca
user

trên
Windows
© 2009 Khoa CNTT - HKHTN
12
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
IIS Certificate AuthenticationIIS Certificate Authentication
IIS

Certificate

AuthenticationIIS

Certificate

Authentication
 Certificate



S dng các certificate causer đ

thchinvicchng
thc

Trong

hóa
khóa
công
khai
(public
-
key cryptography)
mt

Trong

hóa
khóa
công
khai
(public
-
key

cryptography)

mt

certificate s dng mtch ký đint (digital signature) và
mt khóa công khai đikèmvi đnh danh ngi dùng
© 2009 Khoa CNTT - HKHTN
13
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
ASP NET SecurityASP NET Security
ASP
.
NET

SecurityASP
.
NET

Security
© 2009 Khoa CNTT - HKHTN
14
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
ImpersonationImpersonation
ImpersonationImpersonation
 Mc đnh Impersonation là disabled


T

tc ASP.NET request đcthcthibi đnh danh mc
đnh dành cho cho các ng dng ASP.NET

Tài
khon

ASPNET
t
đng
đc
to
khi
cài
.NET Framework
Tài
khon
ASPNET

t
đng
đc
to
khi
cài
.NET

Framework
• Tài khon NETWORK SERVICE đc đnh nghasn trong
Windows Server 2003 và có quyntruycpnh tài khon
ASPNET
ASPNET
© 2009 Khoa CNTT - HKHTN
15
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
ImpersonationImpersonation
ImpersonationImpersonation

 Khi thitlp impersonation là enabled cho mt ng dng
Web
ng
dng
s
đc
thc
thi
di
đnh
danh
đc
ch
Web
,
ng
dng
s
đc
thc
thi
di
đnh
danh
đc
ch
đnh bimt security token truynt IIS

S
dng

impersonation
khi
S
dng
impersonation

khi
– ng dng web davàoIIS đ chng thcuser

Server cho
p

p
host nhiu n
g
dn
g
t nhiu khách hàn
g
khác
pp
g
g
g
nhau, cung cpchomi ng dng web mttàikhon Windows
riêng bit đ ngn không cho ng dng này truy cp vào tài nguyên
ca ng dng khác
// Web.Config
<authentication mode="Windows" />
© 2009 Khoa CNTT - HKHTN

16
<identity impersonate="true" />
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Code Access SecurityCode Access Security
Code

Access

SecurityCode

Access

Security
 Tính nng đch tr trong CLR
Qi
đ h
h
à
b 
h

á
l i
ã
l h
t
bl

Q
u

i

đ
n
h
n
h
ng r
à
ng
b
u

cc
h
op

pc
á
c
l
o
i
m
ã
l
n
h
t
rong assem

bl
y
đc quynthcthi

Trust level là m

tt
p
các lu

t đnh n
g
ha các class tron
g

p

g
g
.NET Framework mà ng dng ASP.NET đc phép s dng
// Web.config
<system.web>

<trust level=
"
Medium
"
/>
<trust


level= Medium />
</system.web>
© 2009 Khoa CNTT - HKHTN
17
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Trust LevelsTrust Levels
Trust

LevelsTrust

Levels
 Full
Tt

NET l
đ


d
&
th
thi

Tt
c

.
NET
c
l

ass
đ
cp

ps

d
ng
&

th
c
thi
 High

Không
đc
s
dng
unmanaged code enterprise services
Không
đc
s
dng
unmanaged

code
,
enterprise


services
,
reflection
 Medium
– ng dng chđc phép truy xut trong cutrúcth mccanó
 Low
Rd
lliti

R
ea
d
-on
l
y app
li
ca
ti
on
 Minimal

Không
đc
phép
truy
cp
tài
nguyên
© 2009 Khoa CNTT - HKHTN
Không

đc
phép
truy
cp
tài
nguyên
18
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
ASP NET Authentication
ASP
.
NET

Authentication
 None
ASP NET
khô
th
hi
i

ASP
.
NET

khô
ng
th
c
hi

nv
i
c
chng thc
 Windows
– S dng ktqu t c ch
chng thc trong cuhìnhca
IIS
 Forms
– Cho phép chng thc thông
qua
f
o
rm
đ
n
g
nh
p
qua o
đ g
p
 Passport
– S dng dch v chng thc

Mi ft P t
© 2009 Khoa CNTT - HKHTN
c

a

Mi
croso
ft

P
asspor
t

19
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Forms AuthenticationForms Authentication
Forms

AuthenticationForms

Authentication
© 2009 Khoa CNTT - HKHTN
20
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Forms AuthenticationForms Authentication
Forms

AuthenticationForms

Authentication
© 2009 Khoa CNTT - HKHTN
21
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Forms AuthenticationForms Authentication
Forms


AuthenticationForms

Authentication
Thuc tính Ý ngha
Cookieless
Qui
đnh
vic
chng
thc
lu
trong
cookie:
Cookieless
(UseDefaultProfile)
Qui

đnh
vic
chng
thc
lu
trong
cookie:
UseCookies, UseUri (nhúng ticket trong URL), và
AutoDetect
defaultUrl

n

g
dn đntran
g
web sau khi chn
g
th

cuser
g
g
g

thành công
loginUrl ng dn đn trang login
protection (All)
Qui
đnh
cách
thc

hóa
authentication ticket:
protection

(All)
Qui

đnh
cách
thc


hóa
authentication

ticket:
All (hash & encrypte), Encryption, None, Validation
(check ticket có b sa đi)
re
q
uireSSL
(
false
)
Yêu cus dn
g
ktni SSL khi tru
y
nd liu
q
()
g
y
© 2009 Khoa CNTT - HKHTN
22
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Forms AuthenticationForms Authentication
Forms

AuthenticationForms


Authentication
Thuc tính Ý ngha
domain
Domain
chng
thc
cookie
domain
Domain
chng
thc
cookie
enableCrossAppRedirects
(false)
Cho phép nhiu ng dng web s dng cùng 1
chng thc
name
Tên
cookie
name
Tên
cookie
path ng dn cho cookie
slidingExpiration (false) Reset lithi gian expire ca cookie sau lntruy

i
c

pcu
i

timeout (30 phút) Qui đnh thi gian expire ca cookie
// Web.Config
<authentication mode="Forms" >
<forms loginUrl="Login.aspx" timeout="86400"
slidingExpiration="true“ />
© 2009 Khoa CNTT - HKHTN
23
</authentication>
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
NiNi
dungdung
NiNi
dungdung
 Mts khái nimv Bomt
 Các cp đ bomt trong mt ng dng ASP.NET
 ng nhp, Qun lý thành viên, phân quyn trong
A
SP.NET
© 2009 Khoa CNTT - HKHTN
24
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Membership ProviderMembership Provider
Membership

ProviderMembership

Provider
 Là tpcáclpca .NET cho phép developer x lý các
chc
nng

qun

chng
thc
ngi
dùng
chc
nng
qun

chng
thc
ngi
dùng
– Thêm ngi dùng mi

Lu
thông
tin
ngi
dùng
trong
CSDL
Lu
thông
tin

ngi
dùng
trong

CSDL
– Chng thcngi dùng
– Phân quynngi dùng
– Qunlýmtkhu(to, sa, reset)
 Membership Provider mc đnh là SqlMembershipProvider
– ToCSDL aspnetdb trong SQLExpress và lu trong th mc
App_Data
© 2009 Khoa CNTT - HKHTN
25
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Role Management ProviderRole Management Provider
Role

Management

ProviderRole

Management

Provider
 Là tpcáclpca .NET cho phép developer x lý các
chc
nng
qun

cp
quyn
ngi
dùng
chc

nng
qun

cp
quyn
ngi
dùng
– Thêm role mi

Ch
đnh
ngi
dùng
vào
các
roles
Ch
đnh
ngi
dùng
vào
các
roles
– Phân quyn cho phép ngi dùng truy cp vào tài nguyên web
 Role Mana
g
ement Provider m

c đ


nh là S
q
lRoleProvide
r
g


q
© 2009 Khoa CNTT - HKHTN
26
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
ASP NET Login ControlsASP NET Login Controls
ASP
.
NET

Login

ControlsASP
.
NET

Login

Controls
 CreateUserWizard
 Login
 LoginName & LoginStatus
 LoginView
 Chan

g
ePassword
g
 PasswordRecovery
© 2009 Khoa CNTT - HKHTN
27
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CreateUserWizardCreateUserWizard
ControlControl
CreateUserWizardCreateUserWizard
ControlControl
© 2009 Khoa CNTT - HKHTN
28
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Login ControlLogin Control
Login

ControlLogin

Control
© 2009 Khoa CNTT - HKHTN
29
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
LoginNameLoginName
andand
LoginStatusLoginStatus
ControlsControls
LoginNameLoginName
and


and

LoginStatusLoginStatus
ControlsControls
© 2009 Khoa CNTT - HKHTN
30
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
LoginViewLoginView
ControlControl
LoginViewLoginView
ControlControl
© 2009 Khoa CNTT - HKHTN
31
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
ChangePasswordChangePassword
ControlControl
ChangePasswordChangePassword
ControlControl
© 2009 Khoa CNTT - HKHTN
32
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
PasswordRecoveryPasswordRecovery
ControlControl
PasswordRecoveryPasswordRecovery
ControlControl
© 2009 Khoa CNTT - HKHTN
33
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CC


uu
hìhì
nhnh
Mail Server (SMTP)Mail Server (SMTP)
CC

uu
hìhì
nhnh
Mail

Server

(SMTP)Mail

Server

(SMTP)
© 2009 Khoa CNTT - HKHTN
34
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CC

uu
hìhì
nhnh
Mail Server (SMTP)Mail Server (SMTP)
CC

uu

hìhì
nhnh
Mail

Server

(SMTP)Mail

Server

(SMTP)
// Web.Config
<configuration>
<configuration>
<system.net>
<mailSettings>
i
i@ i
<smtp
d
el
i
veryMethod="Network" from=“yourma
i
l
@
gma
i
l.com">
<network

host="
smtp.gmail.com" port="465"

il@ il
"d“
d
"
userName=

yourma
il@
gma
il
.com
"
passwor
d
=

y
our passwor
d
"

defaultCredentials="true"/>
</smtp>
/
ilS i
<
/

ma
ilS
ett
i
ngs>
</system.net>

© 2009 Khoa CNTT - HKHTN
</configuration>
35
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
XX


lyly

GG

ii
mailmail
ll

yy
ll
ii
PasswordPassword
XX


lyly


GG

ii
mail

mail

ll

yy
ll
ii
PasswordPassword
using System.Net;
using System.Net.Mail;
protected void PasswordRecovery1_SendingMail(object sender,
MailMessageEventArgs e) {
try {
SmtpClient smtpSender = new SmtpClient(“smtp server”, “smtp port”);
smtpSender.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpSender.Credentials = new NetworkCredential(“
username”, “password”);
smtpSender.EnableSsl = true;
smtpSender.Send(e.Message);
} catch (Exception ex) {
RWit
("Th bl di th il " + )
R
esponse.

W
r
it
e
("Th
ere was a pro
bl
em sen
di
ng
th
e ema
il
.
"

+
ex
)
;
}
e.Cancel = true;
}
© 2009 Khoa CNTT - HKHTN
}
36
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
LL

yy

thôngthông
tintin
cc

uu
hìhì
nhnh
Mail ServerMail Server
trongtrong
Web configWeb config
LL

yy
thôngthông
tin

tin

cc

uu
hìhì
nhnh
Mail

Server

Mail

Server


trongtrong
Web
.
configWeb
.
config
using System.Web.Configuration;
using
System Net Configuration
;
using

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
// settings.Smtp.Network.Username
//
s
ettings.Smtp.Network.Passwor
d

© 2009 Khoa CNTT - HKHTN
37
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
XX


lyly

ll

ii
GG

ii
mailmail
XX


lyly

ll

ii
GG

ii
mailmail
protected void PasswordRecovery1_SendMailError(object sender,
SendMailErrorEventArgs
e)

SendMailErrorEventArgs
e)
{
e.Handled = true;
© 2009 Khoa CNTT - HKHTN
PasswordRecovery1.SuccessText = e.Exception.Message;
}
38
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CuCu
hìnhhình
ss
dngdng
DatabaseDatabase
riêngriêng
chocho
Membership & RoleMembership & Role
CuCu
hìnhhình
ss
dngdng
Database

Database

riêngriêng
chocho
Membership

&


RoleMembership

&

Role
 Bc1: ThcthiASP.NET Sql Server Registration Tool
đ
to
CSDL
đ
to
CSDL
– WINDOWS\Microsoft.NET\Framework\2.0.xxxx\
as
p
net re
g
s
q
l.exe
p
_
gq

Bc
2:
Cu
hình
ConnectionString

Membership

Bc
2:

Cu
hình
ConnectionString
,
Membership

Provider & Role Provider trong Web.Config
 Bc3: S dng Web Site Administration Tool đ cu
hình
p
hân
q
u
y
n
© 2009 Khoa CNTT - HKHTN
p
qy
– Menu > Website > ASP.NET Configuration
39
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CuCu
hìnhhình
ss
dngdng

DatabaseDatabase
riêngriêng
chocho
Membership & RoleMembership & Role
CuCu
hìnhhình
ss
dngdng
Database

Database

riêngriêng
chocho
Membership

&

RoleMembership

&

Role
 Bc1

http://www codedigest com/FAQ/
16
-
How
-

to
-
Configure
-
ASP
-
Net
-
Membership
-
© 2009 Khoa CNTT - HKHTN
http://www
.
codedigest
.
com/FAQ/
16
How
to
Configure
ASP
Net
Membership
Providers-to-Use-Our-Own-Database aspx
40
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CuCu
hìnhhình
ss
dngdng

DatabaseDatabase
riêngriêng
chocho
Membership & RoleMembership & Role
CuCu
hìnhhình
ss
dngdng
Database

Database

riêngriêng
chocho
Membership

&

RoleMembership

&

Role
 Bc2
<!
S t th ti t i f SQL S
>
<!

S

e
t

th
e connec
ti
on s
t
r
i
ng
f
or
SQL

S
erver
>
<connectionStrings>
<clear />
<add name="
SqlConn"
connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Test;"
/>
</connectionStrings
>
© 2009 Khoa CNTT - HKHTN
 />41
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CuCu

hìnhhình
ss
dngdng
DatabaseDatabase
riêngriêng
chocho
Membership & RoleMembership & Role
CuCu
hìnhhình
ss
dngdng
Database

Database

riêngriêng
chocho
Membership

&

RoleMembership

&

Role
 Bc 2 (tt)
<t b>
<
sys

t
em.we
b>
<! Configure the Sql Membership Provider >
<membership defaultProvider=“MySqlMembershipProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="
MySqlMembershipProvider"
type=
"
System Web Security SqlMembershipProvider
"
type=
System
.
Web
.
Security
.
SqlMembershipProvider

connectionStringName="SqlConn"
applicationName="/"
enablePasswordRetrieval="false"
enablePasswordReset="false"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat

="
Hashed
"
/
>
© 2009 Khoa CNTT - HKHTN
passwordFormat
Hashed

/
</providers>
</membership>
</system.web>
42
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CuCu
hìnhhình
ss
dngdng
DatabaseDatabase
riêngriêng
chocho
Membership & RoleMembership & Role
CuCu
hìnhhình
ss
dngdng
Database

Database


riêngriêng
chocho
Membership

&

RoleMembership

&

Role
 Bc 2 (tt)
<t b>
<
sys
t
em.we
b>
<! Configure the Sql Role Provider >
<roleManager enabled ="true"
defaultProvider =“
MySqlRoleProvider" >
<providers>
<clear />
<add name =“
MySqlRoleProvider"
type=
"
System Web Security SqlRoleProvider

"
type=
System
.
Web
.
Security
.
SqlRoleProvider

connectionStringName="SqlConn"
applicationName="/"/>
</providers>
</roleManager>
</system.web>
© 2009 Khoa CNTT - HKHTN
43
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
CuCu
hìnhhình
ss
dngdng
DatabaseDatabase
riêngriêng
chocho
Membership & RoleMembership & Role
CuCu
hìnhhình
ss
dngdng

Database

Database

riêngriêng
chocho
Membership

&

RoleMembership

&

Role
 Bc 3: Website Administration Tool
© 2009 Khoa CNTT - HKHTN
44
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Membership APIMembership API
Membership

APIMembership

API
Membership.Method
CreateUser
CreateUser
DeleteUser
FindUsersByEmail

protected void btnLogin_Click(object s, EventArgs e)
{
strin
g
usr = txtUser.Text;
FindUsersByName
GeneratePassword
GetAllUsers
g
string pwd = txtPassword.Text;
// Use the membership system to authenticate user
if ( Membership.ValidateUser(usr, pwd) )
FormsAuthentication RedirectFromLoginPage
(
usr true
);
GetAllUsers
GetNumberOfUsersOnline
GetUser
GtU N BE il
FormsAuthentication
.
RedirectFromLoginPage
(
usr
,
true
);
else
labError.Text = "User not found, try again";

}
G
e
tU
ser
N
ame
B
y
E
ma
il
UpdateUser
ValidateUser
© 2009 Khoa CNTT - HKHTN
45
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
MembershipUserMembershipUser
APIAPI
MembershipUserMembershipUser
APIAPI
MembershipUser.Method MembershipUser.Property
ChangePassword
Comment
ChangePassword
Comment
ChangePasswordQuestionAndAnswer CreationDate
GetPassword Email
ResetPassword IsApproved
UnLockUser IsLockedOut

IsOnline
LastActivityDate
LastLockoutDate
LastLoginDate
LastLoginDate
LastPasswordChangedDate
PasswordQuestion
© 2009 Khoa CNTT - HKHTN
UserName
46
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET

d
-
Qun

danh
sách
User
trong
GridView

d
-
Qun

danh
sách
User


trong
GridView
<asp:ObjectDataSource ID="odsUsers"
runat="server"
<asp:GridView ID="grdUsers“ runat="server"
DataSourceID="odsUsers"
TypeName="System.Web.Security.Membership"
SelectMethod="GetAllUsers"
DeleteMethod="DeleteUser">
<DeleteParameters>
AutoGenerateColumns="false"
AutoGenerateDeleteButton="true"
AutoGenerateSelectButton="true"
CellPadding
=
"
5
"
<asp:ControlParameter
ControlID="grdUsers" Type="string"
PropertyName="SelectedDataKey.Values[0]"
CellPadding
=
5
DataKeyNames=“UserName”>
<Columns>
<asp:BoundField HeaderText="Name"
DtFild
"
UN

"/>
Name="username" />
</DeleteParameters>
</asp:ObjectDataSource>
D
a
t
a
Fi
e
ld
=
"
U
ser
N
ame
"

/>
<asp:BoundField HeaderText="Email"
DataField="Email"/>
<asp:BoundField HeaderText="Create
Date

DataField
="
CreationDate
"/
>

Date

DataField
CreationDate

/
<asp:BoundField HeaderText="Last
Login“ DataField="LastLoginDate" />
</Columns>
</
asp:GridView
>
© 2009 Khoa CNTT - HKHTN
</
asp:GridView
>
47
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
Roles APIRoles API
Roles

APIRoles

API
Roles.Method Roles.Method
AddUsersToRole
GetAllRoles
AddUsersToRole
GetAllRoles
AddUsersToRoles GetRolesForUser

AddUserToRole GetUsersInRole
AddUserToRoles RemoveUserFromRole
CreateRole RemoveUserFromRoles
DeleteCookie RemoveUsersFromRole
DeleteCookie RemoveUsersFromRoles
FindUsersInRole RoleExists
IsUserInRole
IsUserInRole
© 2009 Khoa CNTT - HKHTN
48
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
VíVí
dd

HinHin
thth
danhdanh
sáchsách
RolesRoles
trongtrong
CheckBoxListCheckBoxList
VíVí
dd

HinHin
thth
danhdanh
sáchsách
Roles


Roles

trongtrong
CheckBoxListCheckBoxList
<asp:ObjectDataSource ID="odsRoles" runat="server"
TypeName
=
"
System Web Security Roles
"
TypeName
=
System
.
Web
.
Security
.
Roles
SelectMethod="GetAllRoles" />
Select user roles: <br/>
<asp:CheckBoxList ID="chkRoles" runat="server"
DataSourceID="
odsRoles" />
© 2009 Khoa CNTT - HKHTN
49
Thitk & Lp trình Web 2 – Bài 9: Bomt ng dng Web ASP.NET
TngTng
ktkt
TngTng

ktkt
 IIS Security
 ASP.NET Security
 Membership & Role
© 2009 Khoa CNTT - HKHTN
50

×