Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Artikel ini menjelaskan peniruan dan konteks keamanan untuk Active Server Pages (ASP) halaman. Menyediakan kode contoh untuk Microsoft Visual Basic ActiveX dynamic-link library (DLL) yang dapat instantiated dari halaman ASP untuk meniru pengguna dan mengubah konteks keamanan thread saat ini.
Secara default, ASP berjalan dalam konteks keamanan pengguna menyamar. Ketika permintaan untuk file ASP dibuat, Web server memanfaatkan thread pekerja dan menetapkan konteks keamanan bahwa benang untuk pengguna menyamar. Metode otentikasi Internet Information Server (IIS) (Anonymous, Basic, NT terintegrasi, dan sebagainya) menentukan pengguna menyamar. Kemudian, ASP kode berjalan dalam konteks pengguna.
Ketika Anda meniru pengguna, Anda dapat menyelesaikan konflik keamanan berikut dalam aplikasi Anda:
Aplikasi yang menggunakan NT terpadu (NTLM) keamanan atau Kerberos untuk otentikasi yang diperlukan untuk mengakses sumber jaringan (seperti file, database Access atau SQL Server) melalui protokol bernama pipa.
Aplikasi yang mengakses sebuah sumber daya jaringan dari Session_OnEnd atau Application_OnEnd acara.
The Session_OnEnd dan Application_OnEnd acara lari dengan identitas proses. Untuk aplikasi perlindungan aplikasi dalam proses atau rendah, ini adalah sistem ID pengguna, dan proses berkas Inetinfo.exe. Alih-alih meniru, Anda dapat menjalankan proses terpisah memori atau dengan tinggi (terisolasi) aplikasi perlindungan dan mengatur identitas paket Microsoft transaksi Server (MTS) atau COM + aplikasi untuk ID yang diinginkan pengguna.
Sebuah aplikasi yang mendukung banyak pengguna yang menghubungkan ke WinNT: / / namespace melalui Microsoft Active Directory Services antarmuka (ADSI).
Hubungan ini cache dengan kredensial keamanan pengguna pertama yang membuka sambungan. Meniru memastikan bahwa pengguna tunggal membuka koneksi; sebagai hasilnya, kredensial pengguna yang cocok dengan kredensial cache.
The LogonUser fungsi menerima informasi logon (ID pengguna, password, dan sebagainya) dan kembali token keamanan untuk logon yang sah.
The ImpersonateLoggedOnUser fungsi menerima token keamanan dari LogonUser dan berlaku ke thread saat ini.
The RevertToSelf fungsi mengembalikan thread untuk konteks keamanan proses berasal.
RevertToSelf ini sangat penting ketika Anda meniru dari ASP. Ini disebut sebelum LogonUser dan ImpersonateLoggedOnUser untuk memastikan bahwa keamanan sekarang memiliki kemampuan untuk meniru. (Jika Anda sudah sebenarnya, yang Anda dari ASP, kemungkinan besar Anda tidak memiliki otoritas yang diperlukan untuk meniru.) RevertToSelf disebut pada akhir halaman pengolahan untuk memastikan bahwa penggunaan berikutnya kain memiliki konteks keamanan yang tepat, yaitu identitas proses berasal.
DLL ActiveX berikut memiliki dua metode: Logon dan Logoff. Logon perubahan konteks benang ID pengguna baru, dan Logoff beralih ke identitas proses berasal. Untuk membuat DLL, lakukan langkah-langkah berikut:
Dalam Visual Basic 6.0, membuat sebuah proyek baru ActiveX DLL yang bernama LoginAdmin.
Mengubah nama awal kelas modul untuk ImpersonateUser.
Menambahkan modul, bernama LogonAPIs.bas, untuk proyek, dan kemudian paste kode berikut untuk membuat panggilan API tersedia untuk kelas Anda:
Public Declare Function LogonUser Lib "advapi32.dll" _
Alias "LogonUserA" (ByVal lpszUsername As String, _
ByVal lpszDomain As String, ByVal lpszPassword As String, _
ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, _
phToken As Long) As Long
Public Declare Function ImpersonateLoggedOnUser Lib "advapi32.dll" (ByVal hToken As Long) As Long
Public Declare Function RevertToSelf Lib "advapi32.dll" () As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Buka ImpersonateUser kelas modul, dan kemudian paste kode berikut untuk membuat Logon dan Logoff metode:
Private Const LOGON32_LOGON_INTERACTIVE = 2
Private Const LOGON32_PROVIDER_DEFAULT = 0
Public Sub Logon(ByVal strAdminUser As String, ByVal _
strAdminPassword As String, ByVal strAdminDomain As String)
Dim lngTokenHandle, lngLogonType, lngLogonProvider As Long
Dim blnResult As Boolean
lngLogonType = LOGON32_LOGON_INTERACTIVE
lngLogonProvider = LOGON32_PROVIDER_DEFAULT
blnResult = RevertToSelf()
blnResult = LogonUser(strAdminUser, strAdminDomain, strAdminPassword, _
lngLogonType, lngLogonProvider, _
lngTokenHandle)
blnResult = ImpersonateLoggedOnUser(lngTokenHandle)
CloseHandle (lngTokenHandle)
End Sub
Public Sub Logoff()
Dim blnResult As Boolean
blnResult = RevertToSelf()
End Sub
CATATAN: Panggilan untuk LogonUser melewati tipe logon LOGON32_LOGON_INTERACTIVE. Logon interaktif memungkinkan kita untuk mengakses sumber daya jaringan yang tipe logon lain tidak.
Menyimpan file proyek.
Pada Berkas menu, klik Membuat LoginAdmin.dll untuk mengkompilasi ActiveX DLL.
Salin LoginAdmin.dll ke Web server, dan kemudian menggunakan Regsvr32.exe untuk mendaftar (jenis regsvr32.exe c:\components\LoginAdmin.dll pada prompt perintah).
Setelah ActiveX DLL terdaftar, Anda dapat menyebutnya dari halaman ASP sebagai berikut:
<%
Option Explicit
Dim objLogon
Set objLogon = Server.CreateObject("LoginAdmin.ImpersonateUser")
objLogon.Logon "Userid", "Password", "Domain"
'Body of code for the page.
objLogon.Logoff
Set objLogon = Nothing
%>
CATATAN: Kapan Anda menelpon RevertToSelf, halaman ASP akan berjalan dibawah konteks keamanan proses. Dalam proses aplikasi, ini adalah sistem account. Namun, untuk pooled atau terisolasi aplikasi, ini adalah identitas COM + paket yang dikonfigurasi untuk aplikasi pooled atau untuk aplikasi terisolasi itu sendiri. Secara default, identitas COM + paket ini diatur ke IWAM_<computername>. Jika account ini tidak memiliki "Bertindak sebagai bagian dari sistem operasi" keistimewaan, panggilan berikutnya untuk<b00> </b00> </computername>LogonUser gagal karena dari pelanggaran hak akses. Sebagai solusi, baik memungkinkan "Bertindak sebagai bagian dari sistem operasi" hak untuk IWAM_<computername> account, atau mengkonfigurasi COM + paket identitas untuk berjalan di bawah account yang memiliki hak-hak ini.
</computername>
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:248187
(http://support.microsoft.com/kb/248187/en-us/
)
Seberapa besar upaya Anda untuk menggunakan artikel ini?
Sangat sedikit
Sedikit
Sedang
Besar
Sangat besar
Berikan saran tentang apa yang dapat kami lakukan untuk menyempurnakan informasi ini
Terima kasih! Masukan Anda akan digunakan untuk membantu kami meningkatkan konten dukungan. Untuk opsi bantuan lainnya, kunjungi Halaman Beranda Bantuan dan Dukungan.