2009-08-31 33 views
19

MVC'de rol tabanlı güvenliğin kullanılmasına yönelik en iyi uygulamaların neler olduğunu bilmek isterim:
İşlemlerinizi nasıl güvenli hale getirebilir ve yalnızca belirli roller tarafından erişilebilir duruma getirebilirsiniz?Rol tabanlı güvenlik asp.net mvc

cevap

23

ASP.Net üyelik sağlayıcınızı doğru şekilde kurarsanız, farklı roller veya kullanıcılar için erişim belirtmek üzere kolayca [Authorize] -attribute kullanabilirsiniz.

, giriş yapma gerekliliği için kullanın:

[Authorize] 
public class SomeController : Controller 

// Or 
[Authorize] 
public ActionResult SomeAction() 

kullanımı belirli roller için erişimi kısıtlamak için:

[Authorize(Roles = "Admin, User")] 
public class SomeController : Controller 

// Or 
[Authorize(Roles = "Admin, User")] 
public ActionResult SomeAction() 

Ve belirli kullanıcılar, kullanım için erişimi kısıtlamak için:

[Authorize(Users = "Charles, Linus")] 
public class SomeController : Controller 

// Or 
[Authorize(Users = "Charles, Linus")] 
public ActionResult SomeAction() 
+1

Rol/izinlerinizin DB'de dinamik olmasını isterseniz ne olur? –

+0

@JoePhilllips Özel bir öznitelik oluşturun ve Yetkilendirilen işleyicide. – nagytech

+0

Yetkilendirme yöntemini beğeniyorum. İşte bir takip sorusu: eğer kural dışı istisnalarla başa çıkmak için etkin bir dizin grubumuz varsa .. ör. "MyApp_AccessDenied" adlı bir grup .. bunu kullanmak için bir yol var mı ?, örneğin, bir DenyAuthorize dekorasyonu gibi ... Authorize dekorasyonu olumsuz bir versiyonu? – Bkwdesign