7

Windows Kimlik Doğrulaması kullanan ASP.NET 5 ile bir intranet türü site yapıyorum. Kimlik doğrulama çalışmam var, ancak alandaki herkesin intranet sitesine erişmesini istemiyorum. Etki alanı rollerini kullanamıyorum, böylece SQL Server'ımda kendi özel rolleri oluşturdum. Alan adı kullanıcı adını rollerle eşleyen bir tablom var. Intranet sitesine erişimi yalnızca SQL Server rol tablomda tanımlanan bir role sahip kullanıcılara kısıtlamak istiyorum. ASP.NET 5'te Windows Kimlik Doğrulaması için özel roller nasıl kurarım? Teşekkürler!ASP.NET 5 Windows Kimlik Doğrulaması için özel roller

+0

SqlRoleProvider'a baktınız mı? –

+0

SqlRoleProvider'ın ASP.NET 5'te kullanılabileceğine inanmıyorum. En azından herhangi bir başvuru bulamadım. – Jeremy

cevap

8

Özel roller ayarlamıyorsunuz. here açıklandığı gibi özel bir yetkilendirme özniteliği oluşturmanız gerekir.

GÜNCELLEME:

Evet, küresel özel authorize özelliğini kullanabilirsiniz. Böyle Eylem düzeyi veya Kontrolör seviyesinde kullanabilirsiniz ya Sonra

public class MyAuthorizeAttribute : AuthorizeAttribute 
{ 
    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     var username = httpContext.User.Identity.Name; 

     // Check to see if user has a role in the database 
     var isAuthorized = db.User.Find(username).Any(); 

     return isAuthorized; 
    } 
} 

:

[MyAuthorize] 
public ActionResult Index() 
{ 
} 

Veya, küresel filtresinde olarak kayıt olabilirsiniz burada diyelim özel authorize özellik bulunuyor FilterConfig sınıfınız aşağıdaki gibi App_Start klasörünüzün altında:

public class FilterConfig 
{ 
    public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
    { 
     filters.Add(new HandleErrorAttribute()); 
     filters.Add(new MyAuthorizeAttribute()); 
    } 
} 
+0

Özel bir yetkilendirme özniteliği her istekte otomatik olarak çalışabilir mi? Kullanıcıların belirli bir denetleyici (ler) üzerindeki kullanıcıları kısıtlamak için [MyCustomAttribute] gibi belirli denetleyicilerin üzerinde bir özellik eklemesi gerektiğini düşündüm. – Jeremy

İlgili konular