Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 27998|Yanıt: 3

[Kaynak] Asp.Net MVC'de kimlik doğrulama ve yetkilendirme

[Bağlantıyı kopyala]
Yayınlandı 16.03.2017 13:47:34 | | |

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





Önceki:VPS yükseltmesinden sonra süreç yaklaşık 45 olur ve CPU 100'e kadar çalışır,
Önümüzdeki:Uyarı: "Aynı bağımlı montajın farklı sürümleri arasında çözülmemiş çatışmalar bulundu"
 Ev sahibi| Yayınlandı 30.03.2017 09:40:22 |
Yayınlandı 28.12.2017 14:58:56 |
Renderlemeler olsaydı daha iyi olurdu
Yayınlandı 7.02.2023 15:44:56 |

Renderlemeler olsaydı daha iyi olurdu
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com