2013-04-06 14 views

cevap

7

WebSecurity bildiğim kadarıyla sadece bir sarıcıdır.

Bu doğru, her ikisi de aynı. Bunu nasıl WebSecurity.Context bir göz atalım nihayet

internal static HttpRequestBase Request 
{ 
    get 
    { 
     return Context.Request; 
    } 
} 

ve: en WebSecurity.Request statik özelliği nasıl uygulandığını bakalım şimdi

public static bool IsAuthenticated 
{ 
    get 
    { 
     return Request.IsAuthenticated; 
    } 
} 

ve: en WebSecurity.IsAuthenticated özelliği nasıl uygulandığını bir göz atalım statik özellik uygulanır:

internal static HttpContextBase Context 
{ 
    get 
    { 
     return new HttpContextWrapper(HttpContext.Current); 
    } 
} 

Yani gördüğünüz gibi:

sırayla orada boş çekler ve örneğin Identity özelliğinin null olması durumunda mülkiyet return false olacağı çok az farkla Context.User.Identity.IsAuthenticated aynıdır

new HttpContextWrapper(HttpContext.Current).Request.IsAuthenticated 

:

WebSecurity.IsAuthenticated 

aynıdır.

Kullanmalı mıyım yoksa User.Identity'nin farklı işlevleri var mı?

iki ı resmi ASP.NET uygulamasıdır User.Identity kullanırsınız kesinlikle eşdeğerdir bile yarın başka bir şeyle basit üyelik sağlayıcısı içeri yerine çok daha az şeyler olacak değiştirmeye karar çünkü eğer senin kodu.

+0

Tavsiyenizi izleyerek, UserId'yi almak için WebSecurity.CurrentUserId kullanmam ve onun yerine Membership.GetUser() kullanın. ProviderUserKey? –

+2

Evet, ikisi de aynı. Aynı sonucu tercih edebileceğiniz birini kullanabilirsiniz. –

İlgili konular