Membership.GetUser() ve Context.User arasındaki farklar nedir ve geçerli kullanıcı hakkında bilgi almak için kullanılması önerilir.Membership.GetUser() vs Context.User
5
A
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.
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.
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
Ü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
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