Giriş kontrolü. Şablonlar ve Oturum Açma Kontrolü

  • 22.04.2019

Giriş kontrolü

Oturum Açma denetimi, Üyelik API'si ile birlikte bir form kimlik doğrulama oturum açma sayfası oluşturmayı kolaylaştırır. Kullanıma hazır sağlar Kullanıcı arayüzü Kullanıcının adını ve parolasını soran ve kullanıcının oturum açması için bir düğme sunan A. Perde arkasında, önceki makalede açıklanan işlevselliği kapsar: Üyelik API'si aracılığıyla kullanıcı kimliklerini doğrulama ve başarılı bir oturum açma sonrasında uygulamanın güvenli alanında orijinal olarak istenen sayfaya yeniden yönlendirme gibi temel form kimlik doğrulama işlevlerini kapsülleme.

Bu, Login'in Membership.ValidateUser() veya FormsAuthentication.RedirectFromLoginPage() gibi şeyleri içine aldığı anlamına gelir, böylece bu kodu kendiniz yazmanız gerekmez. Aşağıdaki şekil, Giriş kontrolünü çalışırken gösterir:

Kullanıcı Oturum Aç düğmesini her tıkladığında, denetim, Üyelik.ValidateUser() işlevini kullanarak kullanıcı adını ve parolayı otomatik olarak doğrular ve ardından doğrulama başarılı olursa FormsAuthenication.RedirectFromLoginPage() öğesini çağırır. Oturum açma denetiminin tüm seçenekleri, bu yöntemlere sağladığı girdiyi etkiler. Örneğin, Bir dahaki sefere beni hatırla onay kutusunu işaretlerseniz, RedirectFromLoginPage() yönteminin createPersistentCookie parametresinde true olarak geçer. Bu nedenle, FormsAuthenticationModule kalıcı bir tanımlama bilgisi oluşturur.

Perde Arkasında Oturum Açma, bir ASP.NET bileşik denetimidir. Herhangi bir düzen stilini ve özelliğini geçersiz kılmanıza ve varsayılan davranışını geçersiz kılmak için oluşturulan olayları yakalamanıza izin vermesi anlamında tamamen genişletilebilir. Kontrolü olduğu gibi bırakırsanız ve herhangi bir olay yakalamazsanız, uygulama için yapılandırılmış üyelik sağlayıcıyı otomatik olarak kullanır.

Bir sayfadaki Giriş denetiminin en basit biçimi şuna benzer: Aşağıdaki şekilde:

Oturum açma denetiminin görünümünü değiştirmek için çeşitli özellikler sağlanmıştır. Kabul edilebilir farklı kurulumlar aşağıdaki gibi stiller:

Girişin görünümünü özelleştirmek için CSS sınıflarını da kullanabilirsiniz. Login denetimi tarafından desteklenen her stil özelliği, bir CssClass özelliği içerir. Diğer ASP.NET denetimlerinde olduğu gibi, bu özellik, web sitesine önceden eklenmiş bir CSS sınıfının adını belirtmenize olanak tanır. Projeye MyStyles.css dosya adıyla aşağıdaki CSS stil sayfasının eklendiğini varsayalım:

MyLoginTextBoxStyle ( imleç: işaretçi; arka plan rengi: sarı; metin hizalama: merkez; dolgu: 6 piksel; kenarlık: noktalı siyah; yazı tipi ailesi: Verdana; dikey hizalama: orta; ) .Login ( display:inline-block; ) .Title (dolgu: 6px; )

Bu stil dosyası, Login öğesinin stilini oluşturabilmek için giriş sayfasına dahil edilebilir:

Aşağıdaki tablo, Oturum Açma denetimi tarafından desteklenen stilleri listeler. Her stil aynı şekilde çalışır. Yazı tipi ve renk özellikleri doğrudan ayarlanabilir veya belirtmek için CssClass özelliğini kullanabilirsiniz. istenilen sınıf CSS:

Oturum Açma Kontrolü Tarafından Desteklenen Stiller
stil Tanım
CheckBoxStyle

Bir dahaki sefere beni hatırla onay kutusu için stil özelliklerini tanımlar

Arıza Stili

Oturum açma başarısız olduğunda görüntülenen metnin stilini belirtir.

HyperLinkStyle

Oturum Açma denetimi, ilk kayıt sayfası gibi çeşitli köprü türleri tanımlamanıza olanak tanır. Bu stil setleri görünüm bu tür köprüler

TalimatMetinStil

Oturum Açma denetimi, doğrudan kendi içinde görüntülenen yardım metnini belirlemenize olanak tanır. Bu stil, bu metnin görünümünü tanımlar.

Etiket Stili

Kullanıcı Adı (Kullanıcı adı) ve Parola (Parola) etiketlerinin stilini tanımlar

Giriş DüğmesiStyle

Oturum açma düğmesinin stilini belirtir

Metin Kutusu Stili

Kullanıcı Adı ve Parola metin alanlarının stilini belirtir

BaşlıkMetinStil

Login denetimi için başlık metninin stilini belirtir

ValidatorTextStyle

Kullanıcı adı ve parolayı doğrulamak için kullanılan kontrollerin stillerini tanımlar

Login öğesinin kullanıcı arabirimi yalnızca bu stiller aracılığıyla özelleştirilemez; diğer ek özellikler yönelik kesin parçalar GUI'yi özelleştirmenize de izin veren Oturum Aç düğmesi gibi içeriği kontrol edin.

Örneğin, oturum açma düğmesinde görüntülenen metni seçebilir veya hatta bu düğme yerine bir köprü görüntüleyebilirsiniz (varsayılan olarak ayarlandığı gibi). Ayrıca, bir yardım sayfasına veya bir kayıt sayfasına bağlantı gibi, Oturum Açma denetimine birden çok köprü ekleyebilirsiniz. Her iki sayfa da açık olmalıdır. anonim erişim, çünkü anonim kullanıcılara da yardım sunulmalıdır (biri Login kontrolünü görürse, potansiyel olarak anonim bir kullanıcı olduğunu unutmayın). Oturum Açma'ya ek bağlantılar eklemek için, daha önce gösterilen tanımı aşağıdaki gibi değiştirin:

...

Bu kod iki görüntülenmesiyle sonuçlanır ek bağlantılar- yardım sayfasına ve ilk kayıt sayfasına ve ayrıca metin ekler kısa talimatlar Login öğesinin başlığının altında:

Daha önce açıklanan stiller bu özellikler için de geçerlidir. Aşağıdaki tablo, Oturum Açma kontrolünü özelleştirmek için önemli özellikleri açıklar:

Oturum Açma Denetimini Özelleştirmek İçin Önemli Özellikler
Mülk Tanım
Mesaj metni
Başlık Metni

Kontrolün başlığında görüntülenen metin

talimat metni

Bu özellik daha önce kullanılmış önceki snippet kod. Kontrol başlığının altında görüntülenen metni içerir

ArızaMetin

Oturum açma girişimi başarısız olursa Oturum Açma denetimi tarafından görüntülenen metin

KullanıcıAdıEtiketMetin

önünde etiket olarak görüntülenen metin Metin alanı Kullanıcı adı

ŞifreEtiketMetin

Kullanıcının parola metin alanının önünde etiket olarak görüntülenen metin

Kullanıcı adı

Kullanıcı adı metin alanını dolduran ilk değer

Kullanıcı adıRequiredErrorMessage

Kullanıcı bir ad girmediyse görüntülenen hata mesajı

ŞifreGerekliHataMesajı

Kullanıcı bir parola girmediyse görüntülenen hata mesajı

Giriş düğmesi
GirişDüğmesiMetin

Giriş düğmesinde görüntülenen metin

Giriş DüğmesiTürü
LoginButtonImageUrl

Giriş butonu bir grafik resim olarak sunuluyorsa, bu resmin bulunduğu URL'yi belirtmelisiniz.

Giriş sayfası
HedefSayfaUrl'si

Oturum açma girişimi başarılı olursa, Oturum Açma denetimi kullanıcıyı bu sayfaya yönlendirir. Varsayılan olarak, bu özellik boştur. Boşsa, istenen orijinal sayfaya veya form kimlik doğrulaması için web.config'de yapılandırılan defaultUrl'ye yeniden yönlendirmek için form kimlik doğrulama çerçevesini kullanır.

ArızaAksiyon

Denetimin ardından gerçekleştireceği eylemi belirtir. başarısız deneme giriş. Geçerli iki seçenek Refresh ve RedirectToLoginPage'dir. İlk değer yalnızca güncellenir geçerli sayfa, ve ikincisi yapılandırılmış oturum açma sayfasına yönlendirmek için. İkinci seçenek, Oturum Açma denetimi oturum açma sayfasından başka bir yerde kullanılıyorsa kullanışlıdır.

VisibleWhenLoggedIn

Yanlış olarak ayarlanırsa, kullanıcı oturum açmışsa kontrol otomatik olarak kendini gizler. true (varsayılan) olarak ayarlanırsa, o zaman Giriş öğesi kullanıcı oturum açmış olsa bile görüntülenir

"Beni hatırla" etiketini özelleştirme
Ekran Beni Hatırla

Bir dahaki sefere beni hatırla onay kutusunu göstermenizi veya gizlemenizi sağlar. Bu özellik varsayılan olarak true olarak ayarlanmıştır.

Beni Hatırla

Bir dahaki sefere beni hatırla onay kutusunun varsayılan değerini belirtir. Varsayılan olarak, bu özellik false olarak ayarlanmıştır, yani. onay kutusu işaretli değil

Kayıt Sayfası
CreateUserUrl

Bir kullanıcı oluşturmanıza (kaydetmenize) izin veren bir web sitesi sayfasına bir köprü tanımlar. Bu nedenle, bu genellikle kullanıcının ilk kayıt sayfasına erişmesine izin vermek için kullanılır. Bu genellikle CreateUserWizard denetimini görüntüler.

Kullanıcı Metni Oluştur
CreateUserIconUrl

URL grafik görüntü, köprü metni CreateUserUrl ile birlikte çıktı alın

yardım sayfası
Yardım SayfasıUrl'si

Kullanıcıyı yardım sayfasına yönlendirmek için URL

Yardım SayfasıMetni
Yardım SayfasıIconUrl

HelpPageUrl köprü metniyle birlikte görüntülenen simgenin URL'si

Şifre kurtarma sayfası
Şifre Kurtarma URL'si

Kullanıcıyı parola kurtarma sayfasına yönlendirecek URL. Bu sayfa, kullanıcı şifreyi unuttuğunda kullanılır. Genellikle bir PasswordRecovery denetimi görüntüler.

ŞifreKurtarmaMetni
Şifre KurtarmaIconUrl

PasswordRecoveryUrl köprü metniyle birlikte görüntülenen simgenin URL'si

Şablonlar ve Oturum Açma Kontrolü

Gördüğünüz gibi, tüm bu özellikler sayesinde Login kontrolü son derece özelleştirilebilir. Ancak muhtemelen fark ettiğiniz gibi, girişi doğrulamak için bir ifade tanımlamak imkansızdır. Elbette Login denetiminin sunduğu olay prosedürleri içerisinde sunucu taraflı doğrulama uygulayabilirsiniz. Login composit kontrolüne bazı elementler eklemek istediğinizde bunu yukarıdaki özelliklerden yapamazsınız. Örneğin, bunun için ikinci bir metin alanına ihtiyacınız varsa ne olur? güçlü kimlik doğrulama ikinci bir şifre ile veya Kullanıcı anahtarı bazı devlet sitelerinde yapıldığı gibi erişim?

Neyse ki, GridView gibi diğer kontroller gibi, Login kontrolü de şablonları destekler. Şablonları kullanarak, Giriş denetiminin içeriğini herhangi bir kısıtlama olmaksızın özelleştirebilirsiniz. Buna yeni kontroller ekleyebilirsiniz. Bir tanıtıcı kullanarak Oturum Açma denetimine özel bir şablon uygular DüzenŞablon:

Kayıt olmak

Kullanıcı adı:
Şifre:


Yukarıdaki koda bakıldığında, bir soru ortaya çıkıyor: Bir şablon kurarken (veya bir görsel tasarımcıda tasarlarken çok fazla UI kodu yazmanız gerekiyorsa), Login kontrolünü kullanmadan neden kendi login sayfanızı yazmıyorsunuz?

Bu doğru soru. Ancak, daha önce açıklandığı gibi, arayüz kısmı, Login öğesinin yalnızca bir parçasıdır. Örneğin, kullanıcının oturum açma düğmesine tıklaması durumunda, Oturum Açma denetimi, kullanıcıyı üyelik deposuna karşı otomatik olarak doğrulamak ve kullanıcıyı form kimlik doğrulama çerçevesi aracılığıyla istedikleri orijinal sayfaya yönlendirmek için gerekli tüm koda zaten sahiptir. Yani bu kodu yazma zahmetinden kesinlikle kurtulmuş olursunuz.

Doğru kontroller ve bu kontroller için doğru ID değerleri ile herhangi bir olay işleme kodu yazmanıza gerek kalmayacak. Kod, bir dizi denetim ve bunların düzenini tanımlamanız dışında olağan şekilde çalışır. Aslında, Oturum Açma denetimi, Kullanıcı Adı ve Parola kimliklerine sahip en az iki metin alanı gerektirir. Bu iki metin alanı eksikse (veya farklı kimlik değerlerine sahipse), Login bir istisna atar. Diğer tüm kontroller isteğe bağlıdır, ancak uygun bir kimlik değeri belirtirseniz (oturum açma düğmesi için Oturum Aç gibi), Oturum Açma olaylarını otomatik olarak işleyecek ve varsayılan düzen uygulandığında olduğu gibi davranacaktır.

Aşağıdaki tabloda özel tanımlayıcı değerleri, bunlar için gerekli eleman türleri ve zorunlu bayrak listelenmektedir:

Login denetimi, olay köpürmesini destekleyen herhangi bir denetim ve bir CommandName özelliği olabilir. Bu öğenin CommandName özelliğini Login olarak ayarlamak önemlidir, çünkü aksi halde Oturum Açma kontrolü, olay işleme sırasında bunu tanımayacaktır. Bir CommandName özelliği Login olarak ayarlanmış bir kontrol eklemezseniz, olayları kendiniz halletmeniz ve kullanıcı adını ve parolayı doğrulamak ve istenen orijinal sayfaya yönlendirmek için uygun kodu yazmanız gerekir.

Ayrıca, Giriş ile hiçbir ilgisi olmayan diğer kimliklerle kontroller de ekleyebilirsiniz. Yukarıdaki kod, kullanıcı adı ve parola alanlarını doğrulamak için RequiredFieldValidator ve RegularExpressionValidator öğelerini kullandı.

LayoutTemplate kullanırken, denetime özgü olan özelliklerin çoğu kullanılamaz hale gelir. Bir şablon uygulandığında yalnızca aşağıdaki özellikler kullanılabilir durumda kalır:

    HedefSayfaUrl'si

    VisibleWhenLoggedIn

  • Üyelik Sağlayıcı

Öğelerin stil özelliklerinin tümü ve birkaç varsayılan metin içeriği özelleştirme özelliği, Login öğesi şablonuna ayrı denetimler veya statik metin olarak manuel olarak eklenebildiklerinden, Visual Studio Özellik Düzenleyicisi'nde artık mevcut değildir. Bunları şablon modunda Login öğesine eklerseniz, şablon bu özellikleri kullanan Login öğesinin varsayılan arabirimini geçersiz kıldığından, yalnızca yoksayılırlar.

Oturum Açma Kontrolünü Programlama

Oturum Açma denetimi, davranışını özelleştirmek için kullanabileceğiniz birkaç olayı ve özelliği destekler. Giriş denetiminin ince ayarı üzerinde tam denetim sağlarlar (şablonlar ve stil özellikleri gibi diğer özelleştirme araçlarıyla birlikte). Oturum Açma denetimi, aşağıdaki tabloda listelenen olayları destekler:

Giriş kontrol olayları
Etkinlik Tanım
Giriş

Kullanıcının kimliği kontrol tarafından doğrulanmadan hemen önce ateşlendi

Giriş

Kullanıcının kimliği kontrol tarafından doğrulandıktan sonra ateşlendi

Sisteme giriş hatası

Bir kullanıcının oturum açma girişimi herhangi bir nedenle başarısız olduğunda tetiklenir (örneğin, yanlış bir parola veya kullanıcı adı)

kimlik doğrulama

Bir kullanıcının kimliğini doğrulamak için başlatıldı. Bu olayı hallederseniz, kullanıcının kimliğini kendiniz doğrulamanız gerekir ve Oturum Açma kontrolü tamamen sizin doğrulama kodunuza bağlı olacaktır.

İlk üç olay, kullanıcı kimlik doğrulamasından önce, kimlik doğrulamadan sonra ve kimlik doğrulama sırasında bir hata oluşursa bazı eylemleri gerçekleştirmek için ele alınabilir. Örneğin, LoginError olayı, aşağıda gösterildiği gibi, belirli sayıda oturum açma denemesinden sonra kullanıcıyı otomatik olarak parola kurtarma sayfasına yönlendirmek için kullanılabilir:

Protected void Page_Load(object sender, EventArgs e) ( if (!this.IsPostBack) ViewState["LoginErrors"] = 0; ) protected void Login1_LoginError(object sender, EventArgs e) ( // LoginErrors durumu yoksa, oluşturun it if (ViewState["LoginErrors"] == null) ViewState["LoginErrors"] = 0; // Başarısız oturum açma girişimlerinin sayacını artır int ErrorCount = (int)ViewState["LoginErrors"] + 1; ViewState["LoginErrors "] = ErrorCount ; // başarısız denemelerin sayısını kontrol edin if ((ErrorCount > 3) && (Login1.PasswordRecoveryUrl != string.Empty)) Response.Redirect(Login1.PasswordRecoveryUrl); )

Oturum Açma denetimi, olayları aşağıdaki şekilde gösterilen sırayla başlatır:

Daha önce belirtildiği gibi, Authenticate olayını yakalarsanız, kendi kullanıcı adınızı ve parola doğrulama kodunuzu eklemelisiniz. Mülk kimlik doğrulama AuthenticateEventArgs parametre listesinin bir örneğini korur. Bu olay bağımsız değişken sınıfı, Authenticated adlı bir özelliği destekler. Doğru olarak ayarlanırsa, Oturum Açma denetimi, kimlik doğrulamanın başarılı olduğunu varsayar ve LoggedIn olayını başlatır. Bu özelliği false olarak ayarlarsanız, bir FailureText görüntülenecek ve LoginError olayı başlatılacaktır:

Protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) ( if (Membership.ValidateUser(Login1.UserName, Login1.Password)) ( e.Authenticated = true; ) else ( e.Authenticated = false; ) )

Gördüğünüz gibi, ilgili metin alanlarına girilen metni içeren KullanıcıAdı ve Şifre özellikleri aracılığıyla girilen değerlere doğrudan erişim vardır. Şablon denetimlerini kullanıyorsanız ve KullanıcıAdı ve Parola kimliklerine sahip öğelere ek olarak başka bir öğeden değer almak istiyorsanız, bu ek öğeyi almak için FindControl() yöntemini kullanabilirsiniz. Bu yöntem, istenen öğenin kimliğini alır ve System.Web.UI.Control örneğini döndürür. Ortaya çıkan nesne daha sonra istenen kontrolün türüne dönüştürülür ve özel kullanıcı kimliği doğrulama yönteminin ihtiyaç duyduğu değer okunur.

JSC Proletari, 120 yılı aşkın süredir teknik mukavva, oluklu mukavva ve oluklu ambalaj üreticileri ve tedarikçileri pazarında başarıyla faaliyet göstermektedir.
Müşterinin boyutuna göre ve çok katmanlı renkli baskı ile her türlü karmaşıklıkta karton kaplar ve oluklu ambalajların yanı sıra çok çeşitli teknik kartonlar üretiyoruz.
Şirketimiz, Rusya'nın en eski oluklu mukavva ve teknik mukavva üreticilerinden biridir. Yüzyılı aşkın bir süredir, teknik mukavva ve oluklu ambalaj üretiminde zengin bir deneyim biriktirdik, bitmiş ürünlerin kalitesini iyileştirmeyi amaçlayan birçok yenilikçi çözüm sunduk.
JSC "Kamaz", "NikolPAK", "GAZ Grubu" ve daha birçok tüketici ürünlerimizi beğendi ve sürekli müşterisi oldu. Ama biz her zaman yeni müşterilerle işbirliği yapmaya hazırız! Küçük ve orta ölçekli işletmeler için özel bir teklif hazırladık ve bizimle ilk kez sipariş verirseniz, sadece oluklu mukavvada değil, tüm ürün yelpazesinde önemli indirimler alacaksınız. Her müşteri bizim için önemlidir!
Herhangi bir mal sevkıyatı - birkaç kutudan yüzlerce tona kadar - kendi nakliyemizle müşteri için uygun bir yere teslim edebiliriz, böylece alıcının teslimat konusunda endişelenmesine gerek kalmaz. Bizimle işbirliği faydalı, kullanışlı ve umut vericidir, bu yüzden yüzlerce düzenli müşteri bizi tercih etmiştir. Bizi arayın veya geri arama talebinde bulunun, yöneticilerimiz sizin için en iyi teklifi seçecektir!

İşinizde başarı ve her şeyde refah!
Saygılarımla, JSC "Proletarya" personeli.

Sitedeki genel davranış kuralları:

Sitede yüzlerce farklı din ve görüşten insanın iletişim kurduğu ve hepsinin sitemizi tam olarak ziyaret ettiği gerçeğiyle başlayalım, bu yüzden bu insan topluluğunun işlemesini istiyorsak kurallara ihtiyacımız var. Bu kuralları okumanızı şiddetle tavsiye ediyoruz, sadece beş dakikanızı alacak, ancak bize ve size zaman kazandıracak ve siteyi daha ilginç ve düzenli hale getirmeye yardımcı olacaktır.

Sitemizde, sitenin tüm ziyaretçilerine saygılı davranmanız gerektiği gerçeğiyle başlayalım. Katılımcılara hakaret etmeyin, her zaman gereksizdir. Herhangi bir şikayetiniz varsa lütfen Yöneticiler veya Moderatörler ile iletişime geçin (özel mesajları kullanın). Diğer ziyaretçilere hakaret etmek en ciddi ihlallerden biri olarak kabul edilir ve yönetim tarafından ciddi şekilde cezalandırılır. Irkçılığı, dini ve siyasi konuşmayı kesinlikle yasaklıyoruz. Anlayışınız ve sitemizi daha kibar ve samimi hale getirme arzunuz için şimdiden teşekkür ederiz.

Site kesinlikle yasaktır:
@hotmail.com'dan bir posta kutusu kullanarak kayıt olmak kesinlikle yasaktır.

Makalenin içeriği veya tartışmanın bağlamı ile ilgili olmayan mesajlar
- site ziyaretçilerine yönelik hakaret ve tehditler
- Yorumlarda küfür içeren, insan onurunu aşağılayan, etnik nefreti kışkırtan ifadeler yasaktır.
- makalenin tartışıldığı bağlamla ilgili olmayan herhangi bir mal ve hizmetin, diğer kaynakların, medyanın veya olayların reklamının yanı sıra spam

Birbirimize ve sizin ve diğer okuyucuların sohbet etmeye ve düşüncelerinizi ifade etmeye geldiğiniz siteye saygı duyalım. Site yönetimi, bu gereksinimleri karşılamadığı takdirde yorumları veya yorumların bir kısmını silme hakkını saklı tutar.

Kuralları çiğnersen, sana verilebilir bir uyarı. Bazı durumlarda, bir yasak verilebilir uyarmadan. Yasağın kaldırılmasıyla ilgili sorularınız için yöneticiye yazın.

Hakaret yöneticiler veya moderatörler de cezalandırılır yasaklamak- başkalarının çalışmalarına saygı gösterin.