2012-06-13 34 views
5

Kayıt ve giriş gerektiren bir site hazırladığımda, çok fazla gereksinim olmadan hızlı bir şey için Üyelik [Authorize] özniteliklerini ve neyi kullanmadığımı kullanacağım. Ne yaptığı için iyi çalışıyor. Ama şimdi daha fazla bir şey istiyorum. Temel olarak ASP.NET MVC EF CodeFirst kullanarak bir site geliştiriyorum ve çok daha fazla bilgi tutan DB'ye devam etmek için bir Kullanıcı varlığı oluşturmak istiyorum. Kayıt sırasında gereken bu tür bilgiler FirstName, LastName, Cinsiyet, Ülke, vb. Gibi ek özelliklere sahip olacaktır..NET Özel Üyelik Vs. Özel Giriş/Kayıt: Kimlik Doğrulama/Yetkilendirme

Özel bir MembershipProvider ve MembershipUser uygulamasının uygulanması üzerinde okumaya çalıştım. ama sonunda istediğim şekilde bir araya gelmiyor. Şimdi PHP'de bir site geliştirdiğimde veya diğer zamanlarda ASP.NET'te Kullanıcı sınıfımı oluşturacağım ve ona kayıt sayfası için gereken tüm özellikleri vereceğim ve sadece DB'ye ileteceğim. O zaman ben giriş yaparken sadece kullanıcı adı veya e-posta ve şifre almak ve sadece kullanıcı yetkili olup olmadığını belirten bir oturum değişkenini oluşturmak.

Bunu yapmak için uygun mu? Sadece tüm bu Üyelik olayının neden bu kadar karmaşık olduğunu anlayamıyorum, öyle görünüyor ki, hepsinin noktasını kaçırıyormuşum gibi hissediyorum. Ayrıca, ben ...

FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false); 

o ve arasındaki fark nedir .... sen ne zaman bu hat üzerinden yazıyor doğrulandığını ileri bir ASP.NET MVC web uygulaması fark

Session["username"] = model.UserName 

cevap

2

Bir üyelik sağlayıcısının rotasına gitmek yerine (kişisel olarak beğenmedim ve çalıştığım uygulamalar için çok fazla ağır buluyorum) uygulamanız için özel bir IPrinicipal/IIdentity nesnesi oluşturmayı ve bunları "Kullanıcı" nesnesinden istediğiniz özellikleri? Sorunuza gelince ASP.NET MVC - Set custom IIdentity or IPrincipal

, Session["username"] basit bir oturum çerezi geçerli:

yerine almak özelliklerini içine

SO o kapağında zaten bu kavram bazı büyük kaynaklar vardır. FormsAuthentication'ın tüm avantajlarını kaybedersiniz. Örneğin, kullanıcı kimlik doğrulaması gerektiren bir sayfa isterse ve kullanıcının daha önce siteye giriş yapmamış bir sayfa isterse, formlar, kullanıcı formları ile yapılandırılmış bir oturum açma sayfasına yönlendirilir.

Session["username"] ile, kimlik doğrulamanın her yönünü el ile döndürmeniz gerekir. Bunu yapmamanızı tavsiye ederim.

+1

Sanırım daha fazla okuma yapmaktan vazgeçtim ... Her seferinde bir şeye karar verdiğimi düşünüyorum, başka bir şey öneriliyor ve uzun vadede en iyi performansı sağlamak için hangi yolu kullanacağımı asla bilemem. ... Cevabınız için teşekkürler. –

+0

Unutmayacağım bir şey, FormsAuthentication'ın kullanılması ve mevcut IIdentity ve IPrincipal'ın ayarlanması, her bir istekte "Geçerli Kullanıcı" ya erişmenizi sağlayacaktır (php yorumunuza benzer). Örneğin, mevcut "kullanıcı adı" nı elde etmek için, kontrol ünitesinde User.Identity.Name kullanmanız yeterlidir. – Jesse

İlgili konular