Bagikan melalui


DefaultAuthenticationModule.Authenticate Kejadian

Definisi

Terjadi setelah permintaan diautentikasi.

public:
 event System::Web::Security::DefaultAuthenticationEventHandler ^ Authenticate;
public event System.Web.Security.DefaultAuthenticationEventHandler Authenticate;
member this.Authenticate : System.Web.Security.DefaultAuthenticationEventHandler 
Public Custom Event Authenticate As DefaultAuthenticationEventHandler 

Jenis Acara

Contoh

Contoh kode berikut menggunakan peristiwa DefaultAuthentication_OnAuthenticate untuk menguji apakah User properti instans saat ini HttpContext adalah null. User Jika properti adalah null, maka sampel mengatur properti instans User saat ini HttpContext ke GenericPrincipal objek di mana IdentityGenericPrincipal objek adalah GenericIdentity dengan Name nilai "default."

Catatan

Peristiwa DefaultAuthentication_OnAuthenticate dinaikkan sebelum AuthorizeRequest acara. Akibatnya, jika Anda mengatur User properti instans saat ini HttpContext ke identitas kustom, itu dapat memengaruhi perilaku aplikasi Anda. Misalnya, jika Anda menggunakan FormsAuthentication kelas dan Anda menentukan <deny users="?" /> di bagian konfigurasi otorisasi untuk memastikan bahwa hanya pengguna terautentikasi yang memiliki akses ke situs Anda, sampel ini akan menyebabkan elemen tolak diabaikan, karena pengguna akan memiliki nama, yang "default." Sebagai gantinya, Anda akan menentukan <deny users="default" /> untuk memastikan bahwa hanya pengguna terautentikasi yang dapat mengakses situs Anda.

public void DefaultAuthentication_OnAuthenticate(object sender,
                                                 DefaultAuthenticationEventArgs args)
{
  if (args.Context.User == null)
    args.Context.User = 
      new System.Security.Principal.GenericPrincipal(
        new System.Security.Principal.GenericIdentity("default"),
        new String[0]);
}
Public Sub DefaultAuthentication_OnAuthenticate(sender As Object, _
                                                args As DefaultAuthenticationEventArgs)
  If args.Context.User Is Nothing Then
    args.Context.User = _
      new System.Security.Principal.GenericPrincipal( _
        new System.Security.Principal.GenericIdentity("default"), _
        new String(0) {})
  End If
End Sub

Keterangan

Peristiwa Authenticate dimunculkan setelah AuthenticateRequest acara. Ini digunakan untuk memastikan bahwa User properti instans saat ini HttpContext diisi dengan IPrincipal objek .

Anda dapat mengakses Authenticate peristiwa DefaultAuthenticationModule kelas dengan menentukan sub-rutin bernama DefaultAuthentication_OnAuthenticate dalam file Global.asax aplikasi.

Anda dapat menggunakan Context properti DefaultAuthenticationEventArgs objek dalam peristiwa DefaultAuthentication_OnAuthenticate untuk mengatur User properti instans saat ini HttpContext ke objek kustom IPrincipal . Jika Anda tidak menentukan nilai untuk User properti , DefaultAuthenticationModule mengatur properti HttpContext instans User ke GenericPrincipal objek yang tidak berisi informasi pengguna.

Peristiwa DefaultAuthentication_OnAuthenticate dimunculkan setelah AuthenticateRequest acara dan sebelum AuthorizeRequest acara. Jika Anda memiliki authorization bagian yang bergantung pada nama pengguna untuk menolak atau mengizinkan akses ke aplikasi Anda, memodifikasi User properti instans saat ini HttpContext dapat memengaruhi perilaku aplikasi Anda. Pastikan bahwa nama pengguna yang Anda tetapkan selama peristiwa DefaultAuthentication_OnAuthenticate dipertimbangkan saat Anda menentukan bagian otorisasi dalam konfigurasi Anda.

Catatan

Jika aplikasi Web berjalan dalam IIS 7.0 dalam mode Terintegrasi, Authenticate peristiwa DefaultAuthenticationModule tidak dinaikkan. mode Jika atribut elemen konfigurasi autentikasi diatur ke "Tidak Ada" dan aplikasi berlangganan peristiwaAuthenticate, kesalahan PlatformNotSupportedException akan dimunculkan. Dalam skenario ini, untuk menerima pemberitahuan autentikasi, berlangganan peristiwa AuthenticateRequestHttpApplication instans. Untuk informasi selengkapnya tentang masalah kompatibilitas dalam mode Terintegrasi, lihat Memindahkan Aplikasi ASP.NET dari IIS 6.0 ke IIS 7.0.

Berlaku untuk

Lihat juga