2010-04-29 12 views

cevap

3

Siteniz için yapılandırılmış bir üyeliğiniz yoksa, getuser() bir şey vermez.

Context.user, asp.net çalışma zamanına verilen kimlik belirtecidir ve site için anonim erişimden başka bir kimlik doğrulaması yapılandırılmışsa bir kullanıcı verir.

+0

Eğer Membership.GetUser() Üyeyi Üyelikten (yeterince açık) alırken, Context.User'ın kullanıcıyı daha geniş bir kapsamdan alacağını söylüyorsunuz. Yani, windows auth kullanarak, örneğin, Membership.GetUser() öğesinden hiçbir şey vermez, ancak DOES, windows kullanıcısını Context.User öğesinden verir. (Ve bu hızlı bir testten durum böyle gözüküyor.) Bu durumda, kesinlikle bir Üyelik sağlayıcısı kullanıyorsanız tavsiye edilir? – zimdanen

+0

ÜyelikProvider, benim deneyimime göre; esas olarak kimlik doğrulamanızda biraz esnekliğe ihtiyaç duyduğunuzda kullanılır, gerekirse bir XMLMembershipProvider bile alabilirsiniz. Form tabanlı kimlik doğrulaması kullanıyorsanız, bir memberhipprovider muhtemelen bunun için en ağrısız yoldur. – Pierreten

+0

Daha derinlere baktığınızda Context.User gerçekten çok az bilgi veriyor gibi görünüyor. Üyelik hakkını haklı buluyorum.GetUser(). Ardından, ihtiyacınız olan tek şey Context.User'den edinebileceğiniz bilgiler olduğunda, Membership.GetUser() kullanılarak bir verimlilik sürünmesi olabilir. – zimdanen

3

Membership.GetUser, bir MembershipProvider kullanılmasını ima eder. Sadece kullanıcı bilgileri, hangi mağaza yapılandırılmış olursa olsun alır. (ör. ActiveDirectory, SQL Server). Context.User, geçerli istek için IPrincipal güvenlik bağlamıdır.