Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

ses sütununu ASP.NET destekleme

Giriş

Microsoft ASP.NET Destek Sesi sütununa hoş geldiniz! Ben ASP.NET geliştirici destek ekibinden Nilay B. Shah. Bir buçuk yıldan fazla bir süredir ASP.NET destekle çalışıyorum. Forms Kimlik Doğrulaması gerçekten harika bir kimlik doğrulama özelliğidir. Bu makalede, kullanıcıların forms kimlik doğrulama bileti ve form kimlik doğrulama tanımlama bilgisi ile ilgili ayarlarıyla ilişkisi gibi form kimlik doğrulamasıyla kafa karıştırıcı bulduğu bazı sorunlar ele alınıyor. ASP.NET destek ekibinin teknik lideri Jerry Orman'a inanılmaz yardımı için teşekkür etmek istiyorum!

Kişiler bazen form kimlik doğrulaması "biletler" ve "tanımlama bilgileri" hakkında merak ederler çünkü bunlar yakından ilişkilidir. Şunlar gibi sorularla karşılaştım: Çerezin sona erme tarihi ile biletin süresinin dolması arasındaki farkı herkes açıklayabilir mi? Tanımlama bilgisinin süresi dolduğunda, kullanıcı oturum açma sayfasına yönlendirilir. Biletin süresi dolduğunda ne olur? Tanımlama bilgisinin süresinin dolmasına da neden olacak mı? SlidingUpdate gerçekte neleri güncelleştirir?

Aşağıdaki soruları yanıtlamak için bu makalede Forms Kimlik Doğrulaması'nın bu iki yönüne odaklanacağım:

  • Forms kimlik doğrulama bileti ve form kimlik doğrulama tanımlama bilgisi nedir? Bunların nasıl bir ilişkisi var?

  • Forms Kimlik Doğrulaması'nda biletin rolü nedir?

  • Tanımlama bilgisi süre sonu ve bilet süre sonu nasıl ilişkilidir?

  • Kayan süre sonu form kimlik doğrulama bileti ve form kimlik doğrulama tanımlama bilgisi bağlamında nasıl çalışır?

  • Forms kimlik doğrulama tanımlama bilgisi ve form kimlik doğrulama anahtarının zaman aşımı özelliği nerede ayarlanabilir?

  • Sorun senaryosu: Form kimlik doğrulaması, yapılandırma dosyasında ayarlanan zaman aşımı özniteliği değerinden önce zaman aşımına neden olabilir

Forms kimlik doğrulama bileti ve form kimlik doğrulama tanımlama bilgisi nedir? Bunların nasıl bir ilişkisi var?

Forms kimlik doğrulama tanımlama bilgisi, forms kimlik doğrulama bileti için kapsayıcıdan başka bir şey değildir. Anahtar, her istekle birlikte forms kimlik doğrulama tanımlama bilgisinin değeri olarak geçirilir ve kimliği doğrulanmış bir kullanıcıyı tanımlamak için sunucuda form kimlik doğrulaması tarafından kullanılır.

Ancak tanımlama bilgisi olmayan form kimlik doğrulamasını kullanmayı seçersek bilet URL'de şifrelenmiş biçimde geçirilir. Bazen istemci tarayıcıları tanımlama bilgilerini engellediğinden tanımlama bilgisi olmayan formlar kimlik doğrulaması kullanılır. Bu özellik Microsoft .NET Framework 2.0'da kullanıma sunulmuştur.

Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/system.web.configuration.formsauthenticationconfiguration.cookieless.aspx

Forms Kimlik Doğrulaması'nda biletin rolü nedir?

Form kimlik doğrulama bileti, ASP.NET uygulamaya kim olduğunuzu bildirmek için kullanılır. Bu nedenle bilet, Forms Kimlik Doğrulaması'nın güvenliğinin yapı taşıdır.

Anahtar, sunucunun Machine.config dosyasının <machineKey> yapılandırma öğesi kullanılarak şifrelenir ve imzalanır. ASP.NET 2.0, form kimlik doğrulama biletlerini şifrelemek için <machineKey> öğesinin decryptionKey ve yeni şifre çözme özniteliğini kullanır. Şifre çözme özniteliği, kullanılacak şifreleme algoritmasını belirtmenize olanak tanır. ASP.NET 1.1 ve 1.0, yapılandırılabilir olmayan 3DES şifrelemesini kullanır. Anahtar değeriyle oynanması, sunucudaki anahtarın şifresinin çözülememesiyle belirlenir. Sonuç olarak, kullanıcı oturum açma sayfasına yönlendirilir.


Uygulama bir Web grubunda dağıtıldıysa, her sunucudaki yapılandırma dosyalarının sırasıyla anahtarın karma ve şifre çözmesi için kullanılan <machineKey> etiketindeki validationKey ve decryptionKey öznitelikleri için aynı değeri paylaştığından emin olmanız gerekir. Hangi sunucunun ardışık istekleri işleyeceklerini garanti edemediğiniz için bunu yapmalısınız. FormsAuthenticationTicket şifrelemesi ve Web grubu dağıtımı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/ms998288.aspx

Forms kimlik doğrulama biletleri, FormsAuthenticationTicket sınıfı kullanılarak el ile oluşturulabilir. Daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

Tanımlama bilgisi süre sonu ve bilet süre sonu nasıl ilişkilidir?

Kalıcı olmayan tanımlama bilgisi söz konusu olduğunda, biletin süresi dolarsa tanımlama bilgisi de sona erer ve kullanıcı oturum açma sayfasına yönlendirilir. Öte yandan, anahtar kalıcı olarak işaretlenirse ve tanımlama bilgisi istemci kutusunda depolanırsa, tarayıcılar web sitesinde istedikleri zaman oturum açmak için aynı kimlik doğrulama tanımlama bilgisini kullanabilir. Ancak, kalıcı veya kalıcı olmayan tanımlama bilgilerini açıkça silmek için FormsAuthentication.SignOut yöntemini kullanabiliriz.

FormsAuthentication.SignOut yöntemi hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication.signout.aspxTanımlama bilgisi olmayan form kimlik doğrulaması ile tarayıcı kapatılırsa bilet kaybolur ve bir sonraki istekte yeni bir bilet oluşturulur.

Kayan süre sonu form kimlik doğrulama bileti ve form kimlik doğrulama tanımlama bilgisi bağlamında nasıl çalışır?

Kayan süre sonu tam olarak aynı şekilde çalışır!

Bir örnek verelim: Oturum açma sayfasına 17:00 00:00:00'da erişiliyorsa, zaman aşımı özniteliği 10 ise ve slidingExpiration özniteliği TRUE olarak ayarlanmışsa 17:10:00:00'da sona ermelidir. Artık herhangi bir Web sayfasına 17:05 00:00:00'da yeniden göz atılırsa tanımlama bilgileri ve bilet zaman aşımı süresi 17:15 00:00:00'a sıfırlanır.

Not Web sayfasına süre sonu süresinin yarısı geçmeden erişilirse, bilet süre sonu süresi sıfırlanmaz. Örneğin, herhangi bir Web sayfasına 17:04 00:00:00'da yeniden erişilirse tanımlama bilgileri ve bilet zaman aşımı süresi sıfırlanmaz.

Daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/1d3t3c61(vs.71).aspx

Form kimlik doğrulama tanımlama bilgisi ve form kimlik doğrulama anahtarının zaman aşımı değeri nerede ayarlanabilir?

Yapabileceğiniz tek ayar Web.config dosyasında veya Machine.config dosyasında, <form> etiketindedir. Bu değişiklik, bilet el ile oluşturulmadığı sürece bilet veya tanımlama bilgisi bağlamında form kimlik doğrulamasının zaman aşımı süresini belirler.


<!-- forms Öznitelikleri:
name="[cookie name]" - Forms Kimlik Doğrulaması için kullanılan tanımlama bilgisinin adını ayarlar.
loginUrl="[url]" - İstemciyi kimlik doğrulaması için yönlendirilecek URL'yi ayarlar.
protection="[Tümü|Yok|Şifreleme|Validation]" - Tanımlama bilgisindeki veriler için koruma modunu ayarlar.
timeout="[minutes]" - Tanımlama bilgisinin geçerli olacağı süreyi ayarlar (her istekte sıfırlanır).
path="/" - Tanımlama bilgisinin yolunu ayarlar.
requireSSL="[true|false]" - Form kimlik doğrulama tanımlama bilgisi yalnızca SSL üzerinden mi gönderilmelidir?
slidingExpiration="[true|false]" - Form kimlik doğrulama tanımlama bilgisi ve anahtarının süresi dolmak üzereyse yeniden verilmesi gerekir mi?
--> Daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/1d3t3c61.aspxBilet FormsAuthenticationTicket sınıfı kullanılarak el ile oluşturulursa, zaman aşımı Expiration özniteliği aracılığıyla ayarlanabilir. Bu değer, yapılandırma dosyalarında belirtilen zaman aşımı özniteliği değerini geçersiz kılar.

FormsAuthenticationTicket üyeleri hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket_members.aspx

Sorun senaryosu: Form kimlik doğrulaması, yapılandırma dosyasında ayarlanan zaman aşımı özniteliği değerinden önce zaman aşımına neden olabilir

Form kimlik doğrulama bileti el ile oluşturulursa, biletin zaman aşımı özelliği yapılandırma dosyasında ayarlanan değeri geçersiz kılar. Bu nedenle, bu değer yapılandırma dosyasındaki değerden küçükse, form kimlik doğrulama anahtarının süresi yapılandırma dosyası zaman aşımı öznitelik değerinden önce (veya tersi) dolacaktır. Örneğin, <form>zaman aşımı özniteliğinin Web.config dosyasında 30 olarak ayarlandığını ve biletin Süre Sonu değerinin 20 dakika olarak ayarlandığını varsayalım. Bu durumda, form kimlik doğrulama biletinin süresi 20 dakika sonra dolar ve kullanıcının bundan sonra yeniden oturum açması gerekir.

İlgili bağlantılar

910439 Form Kimlik Doğrulaması sorunlarını giderme
 

301240 C# .NET kullanarak ASP.NET uygulamanızda form tabanlı kimlik doğrulaması uygulama
 

Umarım bu bilgileri ASP.NET form kimlik doğrulama bileti ve tanımlama bilgisi ile ilgili karışıklığın bir kısmını hafifletmek için yararlı buldunuz. Destek Sesi sütunlarının size uygun olduğunu unutmayın.

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×