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.
Mengkonfigurasi pengaturan keamanan di Web.config File
Bagian ini menunjukkan cara menambah dan mengubah <authentication></authentication> dan <authorization></authorization> bagian konfigurasi untuk mengkonfigurasi ASP.NET aplikasi untuk
menggunakan otentikasi berbasis bentuk.
Dalam solusi Explorer, buka Web.config file.
Mengubah mode otentikasi untuk Bentuk.
Menyisipkan <forms>tag, dan mengisi yang sesuai
atribut. (Untuk informasi lebih lanjut mengenai atribut ini, merujuk kepada MSDN
dokumentasi atau dokumentasi QuickStart yang tercantum dalam
</forms>REFERENSI bagian.) Salinan
kode berikut, dan kemudian klik Pasta sebagai HTML padaMengedit menu untuk menyisipkan kode di <authentication></authentication> bagian dari file:
Membuat tabel Database contoh untuk toko pengguna rincian
Bagian ini menunjukkan cara membuat database contoh untuk
menyimpan nama pengguna, sandi, dan peran bagi pengguna. Anda perlu kolom peran
Jika Anda ingin menyimpan peran pengguna dalam database dan menerapkan berbasis peran
keamanan.
Pada Mulai menu, klikMenjalankan, kemudian ketik Notepad untuk membuka
Notepad.
Menyoroti kode skrip SQL berikut, klik kanan
kode, dan kemudian klik Salin. Dalam Notepad, klikPasta pada Mengedit menu untuk menyisipkan berikut
kode:
if exists (select * from sysobjects where id =
object_id(N'[dbo].[Users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Users]
GO
CREATE TABLE [dbo].[Users] (
[uname] [varchar] (15) NOT NULL ,
[Pwd] [varchar] (25) NOT NULL ,
[userRole] [varchar] (25) NOT NULL ,
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Users] WITH NOCHECK ADD
CONSTRAINT [PK_Users] PRIMARY KEY NONCLUSTERED
(
[uname]
) ON [PRIMARY]
GO
INSERT INTO Users values('user1','user1','Manager')
INSERT INTO Users values('user2','user2','Admin')
INSERT INTO Users values('user3','user3','User')
GO
Simpan sebagai file Users.sql.
Pada komputer Microsoft SQL Server, buka Users.sql dalam
Permintaan Analyzer. Dari daftar database, klik pub, dan
menjalankan script. Ini menciptakan tabel pengguna contoh dan saran populates meja di
database pub untuk digunakan dengan aplikasi sampel ini.
Formulir Web ini digunakan untuk mempresentasikan bentuk logon pengguna sehingga mereka dapat
memberikan nama pengguna dan sandi untuk masuk ke aplikasi mereka.
Beralih ke tampilan desain, dan menyimpan halaman.
Kode Event Handler sehingga memvalidasi kredensial pengguna
Bagian ini menyajikan kode yang ditempatkan di kode di belakang
Halaman (Logon.aspx.cs).
Klik dua kali Logon untuk membuka
Logon.aspx.cs file.
Impor namespaces diperlukan dalam kode-file di belakang:
using System.Data.SqlClient;
using System.Web.Security;
Membuat ValidateUser fungsi untuk memvalidasi kredensial pengguna dengan melihat di
database. (Pastikan bahwa Anda mengubah koneksi string untuk menunjuk ke Anda
database).
private bool ValidateUser( string userName, string passWord )
{
SqlConnection conn;
SqlCommand cmd;
string lookupPassword = null;
// Check for invalid userName.
// userName must not be null and must be between 1 and 15 characters.
if ( ( null == userName ) || ( 0 == userName.Length ) || ( userName.Length > 15 ) )
{
System.Diagnostics.Trace.WriteLine( "[ValidateUser] Input validation of userName failed." );
return false;
}
// Check for invalid passWord.
// passWord must not be null and must be between 1 and 25 characters.
if ( ( null == passWord ) || ( 0 == passWord.Length ) || ( passWord.Length > 25 ) )
{
System.Diagnostics.Trace.WriteLine( "[ValidateUser] Input validation of passWord failed." );
return false;
}
try
{
// Consult with your SQL Server administrator for an appropriate connection
// string to use to connect to your local SQL Server.
conn = new SqlConnection( "server=localhost;Integrated Security=SSPI;database=pubs" );
conn.Open();
// Create SqlCommand to select pwd field from users table given supplied userName.
cmd = new SqlCommand( "Select pwd from users where uname=@userName", conn );
cmd.Parameters.Add( "@userName", SqlDbType.VarChar, 25 );
cmd.Parameters["@userName"].Value = userName;
// Execute command and fetch pwd field into lookupPassword string.
lookupPassword = (string) cmd.ExecuteScalar();
// Cleanup command and connection objects.
cmd.Dispose();
conn.Dispose();
}
catch ( Exception ex )
{
// Add error handling here for debugging.
// This error message should not be sent back to the caller.
System.Diagnostics.Trace.WriteLine( "[ValidateUser] Exception " + ex.Message );
}
// If no password found, return false.
if ( null == lookupPassword )
{
// You could write failed login attempts here to event log for additional security.
return false;
}
// Compare lookupPassword and input passWord, using a case-sensitive comparison.
return ( 0 == string.Compare( lookupPassword, passWord, false ) );
}
Anda dapat menggunakan salah satu dari dua metode untuk menghasilkan bentuk
kuki pembuktian keaslian dan mengarahkan ulang pengguna ke halaman yang sesuai di cmdLogin_ServerClick acara. Contoh kode yang diberikan untuk kedua skenario. Menggunakan salah satu
mereka sesuai dengan kebutuhan Anda.
Panggilan RedirectFromLoginPage metode untuk secara otomatis menghasilkan bentuk otentikasi cookie
dan mengarahkan ulang pengguna ke halaman yang sesuai di cmdLogin_ServerClick acara:
Menghasilkan tiket otentikasi, mengenkripsi itu, membuat
kuki, menambahkan respon, dan mengarahkan ulang pengguna. Ini memberi Anda lebih banyak
kontrol di bagaimana Anda membuat cookie. Anda dapat juga menyertakan data kustom bersama
dengan FormsAuthenticationTicket dalam kasus ini.
private void cmdLogin_ServerClick(object sender, System.EventArgs e)
{
if (ValidateUser(txtUserName.Value,txtUserPass.Value) )
{
FormsAuthenticationTicket tkt;
string cookiestr;
HttpCookie ck;
tkt = new FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now,
DateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data");
cookiestr = FormsAuthentication.Encrypt(tkt);
ck = new HttpCookie(FormsAuthentication.FormsCookieName, cookiestr);
if (chkPersistCookie.Checked)
ck.Expires=tkt.Expiration;
ck.Path = FormsAuthentication.FormsCookiePath;
Response.Cookies.Add(ck);
string strRedirect;
strRedirect = Request["ReturnUrl"];
if (strRedirect==null)
strRedirect = "default.aspx";
Response.Redirect(strRedirect, true);
}
else
Response.Redirect("logon.aspx", true);
}
Pastikan bahwa kode berikut akan ditambahkan ke InitializeComponent metode dalam kode yang menghasilkan bentuk Web Designer:
this.cmdLogin.ServerClick += new System.EventHandler(this.cmdLogin_ServerClick);
Bagian ini menciptakan halaman pengujian yang mengarahkan pengguna
setelah mereka melakukan otentikasi. Jika pengguna browse ke Halaman ini tanpa logon pertama
untuk aplikasi, mereka diarahkan ke halaman logon.
Mengubah nama halaman WebForm1.aspx ada sebagai Default.aspx, dan
membukanya dalam editor.
Beralih ke tampilan HTML, dan menyalin kode berikut antara
The<form>Tag:<b00></b00></form>
Anda mungkin ingin menyimpan password aman dalam database. Anda
dapat menggunakan FormsAuthentication kelas fungsi utilitas bernama HashPasswordForStoringInConfigFile untuk mengenkripsi password sebelum Anda menyimpannya dalam database atau
file konfigurasi.
Anda mungkin ingin menyimpan informasi koneksi SQL dalam
file konfigurasi (Web.config) sehingga Anda dapat dengan mudah memodifikasi jika
diperlukan.
Anda dapat mempertimbangkan untuk menambahkan kode untuk mencegah hacker yang mencoba untuk
menggunakan berbagai kombinasi password dari log on. Sebagai contoh, Anda dapat
termasuk logika yang menerima hanya dua atau tiga percobaan. Jika pengguna tidak dapat
masuk dalam jumlah tertentu upaya, Anda mungkin ingin mengatur bendera
database untuk memungkinkan pengguna untuk login sampai pengguna re-enables nya atau dia
account dengan mengunjungi halaman yang berbeda atau dengan menelepon baris dukungan Anda. Dalam
Selain itu, Anda harus menambahkan sesuai kesalahan penanganan di mana pun
diperlukan.
Karena pengguna diidentifikasi berdasarkan otentikasi
cookie, Anda mungkin ingin menggunakan Secure Sockets Layer (SSL) pada aplikasi ini sangat
bahwa tidak ada yang dapat menipu cookie otentikasi dan berharga lain
informasi yang ditransmisikan.
Otentikasi berbasis bentuk memerlukan klien Anda menerima
atau mengaktifkan cookie pada browser mereka.
The timeout parameter <authentication></authentication> bagian konfigurasi kontrol interval di mana
kuki pembuktian dibuat ulang. Anda dapat memilih nilai yang menyediakan
lebih baik kinerja dan keamanan.
Perantara proxy dan cache pada Internet tertentu mungkin
cache Web server tanggapan yang berisi header Set-Cookie, yang kemudian
kembali ke pengguna yang berbeda. Karena otentikasi berbasis bentuk menggunakan cookie
untuk mengotentikasi pengguna, ini dapat menyebabkan pengguna untuk sengaja (atau sengaja)
meniru pengguna lain dengan menerima cookie dari proxy perantara atau
cache yang awalnya ditujukan untuk mereka.
Untuk informasi lebih lanjut tentang cara menerapkan sederhana
otentikasi berbasis bentuk yang menggunakan <credentials></credentials> bagian untuk menyimpan pengguna dan password, merujuk pada berikut
GotDotNet ASP.NET QuickStart contoh:
Untuk informasi lebih lanjut tentang cara menerapkan berbasis bentuk
otentikasi yang menggunakan XML file untuk menyimpan pengguna dan password, merujuk kepada
Berikut topik di.NET Framework Software Development Kit (SDK)
Dokumentasi:
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:301240
(http://support.microsoft.com/kb/301240/en-us/
)
Mondja el, hogy miért, és tudassa velünk, miként tudnánk javítani az információ min?ségén
Köszönjük! Ez az információ segítséget nyújt számunkra, hogy fejlesszük a támogatási tartalmat. További támogatási lehet?ségekért keresse fel a következ? webhelyet: Súgó és támogatási webhely.