2011-02-12 15 views
18

Bir ASP.NET sayfasının içinde, HttpContext numaralı bir modül veya işleyici varsa, geçerli RoleProvider örneğine nasıl başvuru yapabilirim?Referans akımı RoleProvider örneği?

IPrincipal.IsInRole(..) yöntemi çağrıldığında yetkilendirme için kullanılan sağlayıcıdır. Varsayılan olarak veya yapılandırmadan sağlayıcım, uygulamayı çalıştırdığım sırada verilen bir hatayla SqlRoleProvider örneği gibi görünüyor.

Gerçekte hangisinin kullanılmakta olduğuna dair geri bildirim sağlamak için çalışma zamanında sağlayıcının türünü incelemek istiyorum.

cevap

29

static Roles class'da, geçerli sağlayıcıya başvurmak için kullanabileceğiniz bir Sağlayıcı özelliği vardır. Özel bir RoleProvider kullanıyorsanız

Roles.Provider 

ve, özel işlevselliğine erişmek için yayınlayabilmek için.

((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs(); 
+0

Teşekkürler! Bu bilgi, rol sağlayıcımın gerçekte beklenen 'System.Web.Security.SqlRoleProvider' yerine 'WebMatrix.WebData.SimpleRoleProvider' olduğunu belirlememe yardımcı oldu. Whew! Şerefe. –

+4

+1 sadece "All Your Base ..." referansı için. –