Bana iletilen bir web sitesinde (C# ile ASP.NET'te geliştirilmiştir) çalışıyorum. Ben site üzerinden çalışıyorum, ben sitenin bir kısmı onda bu kod türü olan dikkat edin: Bu, tüm tipik (Page_Load yönteminde) sitenin kod arkasında yapılırDenetimleri Web Güvencesi Biçimi Olarak Gizleme, Daha İyi İçin Öneriler?
EmailLabel.Visible = false;
WhateverButton.Visible = false;
AnotherControl.Visible = false;
...
. Esasen, oturum açmamış bir kullanıcının bileşenlere erişmesini engellemek için uygulamaya konulmuştur (site kuralı, oturum açmamış bir kullanıcının oturum açana kadar sitenin herhangi bir bölümünü görememesidir). 'un üstündeki yol, çalışıyor ... ancak kullanıcının giriş yapıp yapmadığını kontrol etmenin ve tüm bu bileşenler için doğru duruma geçmesinin gerekmesi oldukça pahalı görünüyor.
Bu soruna yaklaşımın farklı bir yolu var mı? Sadece onu düşünerek/araştırma yaparken, belki de bir kullanıcı giriş yapmamışsa, ana sayfaya bir yönlendirme yapabilmem için bir yol olacağını düşünmüştüm. Daha da ileride, bunu yapmak için bir temel sayfayı genişletebilirim. Ana sayfayı genişleten sayfa. Ancak, bu alandaki bilgim sınırlıdır, bu yüzden önerim çalışmayabilir.
SO önerebilir? Daha iyi bir şey var mı? Orada yeterince iyi olan nedir?
Bu yaklaşım çoğu durum için kesinlikle tavsiye edilirken, daha hızlı olması imkansız. Bazı boole değişkenleri, tarayıcıya 301 gidiş dönüş yapmanın ötesinde bir yere nasıl yerleştirilebilir? Yüzlerce milisaniye ağ gecikme süresi ve birden çok tarayıcı isteği ile ilgilenen sunucudan işlemci süresinin nanosaniyesinde konuşuyorsunuz. Ve Response.End() kendi ek yükünü üreten bir ThreadAbortException atar. – womp
Sadece açıklığa kavuşturmak için - sadece * kimlik doğrulaması gerektiren sayfaları korumak kesinlikle bu şekilde yapılmalıdır. OP'nin bunu gerektirip gerektirmediği konusunda emin değilim. – womp
Bunun daha hızlı olmasının nedeni, OnInit'ten sonraki Sayfa Döngüsü Yöntemlerinden hiçbirinin bu şekilde çağrılmamasıdır. Çok fazla CPU zamanı tasarrufu. Tüm niyet ve amaçlar için, fazladan bir gidiş geliş ve kullanıcıyla giriş yapmadığı zaman, kullanıcı giriş yapmamış olması durumunda beklenmektedir. – TJMonk15