Aracılığıyla paylaş


ASP.NET Web API'sinde Form Kimlik Doğrulaması

Tarafından Mike Wasson

Forms kimlik doğrulaması, kullanıcının kimlik bilgilerini sunucuya göndermek için bir HTML formu kullanır. Bu bir İnternet standardı değildir. Form kimlik doğrulaması yalnızca bir web uygulamasından çağrılan web API'leri için uygundur, böylece kullanıcı HTML formuyla etkileşime geçebilir.

Avantajlar Dezavantajlar
  • Uygulanması kolay: ASP.NET yerleşik.
  • Kullanıcı hesaplarını yönetmeyi kolaylaştıran ASP.NET üyelik sağlayıcısını kullanır.
  • Standart bir HTTP kimlik doğrulama mekanizması değildir; standart Yetkilendirme üst bilgisi yerine HTTP tanımlama bilgilerini kullanır; bazı kullanıcılar tanımlama bilgilerini devre dışı bırakır.
  • Sorun giderme olmayan istemcilerden kullanılması zor. Oturum açmak için bir tarayıcı gerekir.
  • Kullanıcı kimlik bilgileri istekte düz metin olarak gönderilir.
  • Siteler arası istek sahteciliğe (CSRF) karşı savunmasız; CSRF önleme önlemleri gerektirir.

Kısaca, ASP.NET form kimlik doğrulaması şöyle çalışır:

  1. İstemci, kimlik doğrulaması gerektiren bir kaynak ister.
  2. Kullanıcının kimliği doğrulanmamışsa, sunucu HTTP 302 (Bulundu) döndürür ve oturum açma sayfasına yönlendirilir.
  3. Kullanıcı kimlik bilgilerini girer ve formu gönderir.
  4. Sunucu, özgün URI'ye yeniden yönlendiren başka bir HTTP 302 döndürür. Bu yanıt bir kimlik doğrulama tanımlama bilgisi içerir.
  5. İstemci, kaynağı yeniden talep eder. İstek, kimlik doğrulama tanımlama bilgisini içerdiğinden sunucu isteği verir.

A S P dot Net'te form kimlik doğrulamasının nasıl çalıştığını gösteren çizim

Daha fazla bilgi için bkz . Form Kimlik Doğrulamasına Genel Bakış.

Web API'siyle Forms Kimlik Doğrulamasını Kullanma

Form kimlik doğrulaması kullanan bir uygulama oluşturmak için MVC 4 proje sihirbazında "İnternet Uygulaması" şablonunu seçin. Bu şablon, hesap yönetimi için MVC denetleyicileri oluşturur. ASP.NET Sonbahar 2012 Güncelleştirmesi'nde bulunan "Tek Sayfalı Uygulama" şablonunu da kullanabilirsiniz.

Web API denetleyicilerinizde, [Authorize] Özniteliğini[Authorize] Kullanma bölümünde açıklandığı gibi özniteliğini kullanarak erişimi kısıtlayabilirsiniz.

Forms-authentication, isteklerin kimliğini doğrulamak için oturum tanımlama bilgisi kullanır. Tarayıcılar tüm ilgili tanımlama bilgilerini otomatik olarak hedef web sitesine gönderir. Bu özellik, form kimlik doğrulamasını siteler arası istek sahteciliği (CSRF) saldırılarına karşı savunmasız hale getirir. Bkz. Siteler Arası İstek Sahteciliği (CSRF) Saldırılarını Önleme.

Forms kimlik doğrulaması kullanıcının kimlik bilgilerini şifrelemez. Bu nedenle, FORMS kimlik doğrulaması SSL ile kullanılmadığı sürece güvenli değildir. Bkz . Web API'sinde SSL ile Çalışma.