MVC, ActionFilter ile birlikte gelir Asp.NET WebForm'da kimlik doğrulamasını sağlamak için Microsoft bize üç yol sunar; bunlardan en yaygın kullanılanı, ilgili bilgilerle yapılandırılması gereken Form kimlik doğrulamamızdır. Örneğin, aşağıdaki yapılandırma bilgileri:
Bu, giriş sayfamızın Login.aspx, başarılı girişten sonraki varsayılan sayfanın Default.aspx olduğu ve kullanıcı bilgilerimizin iki yöntem kullandığı anlamına gelir: doğrulama ve şifreleme. Ve en önemli şey, yetkilendirme yöntemini yazmamız gerekiyor (aşağıdaki yetkilendirme yazılmalıdır, aksi takdirde sadece Forms kimlik doğrulamasını kullanıp ilgili özellikleri ayarlamak işe yaramaz), tüm anonim kullanıcıları reddetmemiz ve sadece giriş yapmış kullanıcıların normal erişimine erişmesi gerekir. Bundan sonra, giriş butonunu kullanıcı adını çereze yazacak şekilde ayarlıyoruz (yani, FormsAuthentication.SetAuthCookie(ad, yanlış); Hepsi bu. 0 Asp.Net MVC'de Forms kimlik doğrulamasını da kullanabiliriz, ancak WebForm'da yaparsanız çalışmaz. Örneğin, bilgiyi şöyle yapılandırırsınız:
Hesap Kontrolcüsü'nde Logon'u tetiklemek için Login.aspx bir giriş ayarlıyorsunuz, burada Logon kodu:
Bunu yaptıktan sonra, Logon'unuzun yürütülmeyeceğini göreceksiniz. Sebebi nedir? Neden aynı ayar MVC'de çalışmıyor? Sebebi, mekanizmanın farklı olması, çünkü Logon'u erişimsiz kılan bir yetkilendirme yöntemi kurmuşsunuz. Peki bunu nasıl yapacağız? Aslında, Asp.Net MVC'de tüm bunları yapmanın daha iyi bir yolu var, yetkilendirme yöntemine ihtiyacımız yok, bu da yapılandırma bilgilerimizin şu şekilde göründüğü anlamına geliyor:
Anonim kullanıcıların giriş yapamayacağını belirtmeye gerek yok. Tabii ki, sadece bunu yapmak yeterli değil, ancak sisteme hangi dosyaların giriş yapması gerektiğini söylememiz gerekiyor. Belki de şöyle düşünüyorsunuzdur ki, o()〈))o Ah, bu çok zahmetli. Öyle değil, çok basit, sadece doğrulaması gereken eyleme [Yetkilendirme] işareti vermemiz gerekiyor. Örneğin, Ana klasörde iki sayfa var, Index ve Home, ve Index'in erişim için kimlik doğrulamasını istiyorum ama Home bunu yapmıyor, bu yüzden Index'e sadece Action etiketini [Authorize] vermem gerekiyor, yani:
Bu, giriş yaptıktan sonra Index'e erişmeni sağlarken, Home'a giriş yapmak zorunda değildir. Eğer rolleri yetkilendirmeniz gerekiyorsa, Authorize işareti yaparken rolü belirtebilirsiniz (örneğin [Authorize(Role=Administrators)]), ancak Microsoft'un sağladığı üyelik mekanizmasını kullanmanız gerekir, çünkü rolünüz boşuna var olamaz, ilgili veritabanında vardır, bunu başka bir blogda da bahsetmiştim. ActionFilter'ı Özelleştirin Bazen bu tür kimlik doğrulamayı karşılayamayabilirsiniz ya da yeterince esnek olmadığınızı düşünüyorsanız önemli değil, Asp.Net MVC ActionFilter'ınızı özelleştirmenize izin veriyor. Örneğin, artık kimlik doğrulamayı özelleştiriyorum:
Kullanıcı yönetimi gerekiyorsa, rol ile ilgili filtreleri tanımlayacağım:
Aslında, yukarıdaki iki Özniteliğin MVC'nin yerleşik Yetkili özelliğiyle çözüldüğünü göreceksiniz ve burada size esas olarak gerekirse genişletebileceğiniz söyleniyor. Bugün bu kadar! Kaynak kodu indir: FormFormsAuthenticationMvc
|