2009-07-22 38 views
6

Bir ACL'ye karşı kullanıcı izinlerini C# olarak kontrol etmenin bir yolu olup olmadığını merak ediyorum. Kimlik doğrulaması için aktif dizini kullanacak büyük bir sistem yapıyorum ve olabildiğince çok windows güvenlik tesisatını kullanmak istiyorum. System.Security.AccessControl'e göz atarak son birkaç saati harcadıktan sonra, ACL listesine karşı bir kullanıcı jetonunu kontrol etmenin kolay bir yolunu sağladığından emin değilim. Özel bir sistemi uygulamak için yeterli soyut sınıflar olsa da, windows güvenlik tanımlayıcılarını işlemek için çok daha fazla dişli gibi görünüyor.ACL Check/Management in C#

Çok daha esnek görünen ve bağlamın güvenlik tanımlayıcısına karşı denetlenmesine izin veren bir işlevi olan Authz API'lerine bakıyorum (AuthzAccessCheck). İhtiyacım olursa onları sarmalamaya hiç de karşı değilim.

Başka birinin benzer bir sorunu vardı ve öyleyse onları gördükçe artıları ve eksileri neydi?

+0

Web uygulamalarımda (dosya ve klasörlerdeki) güvenlik kaygılarım için 'System.Security.AccessControl 'kullanmaya çalışıyorum, lütfen paylaşılabilecek herhangi bir şeyle mi geldiniz? teşekkürler – Ashkan

+0

Authz kullandım ve bunun için bir sarıcı oluşturdum. –

+0

Authz için herhangi bir kaynak biliyor musunuz? Ben googled ve C++ olan sadece msdn web siteleri buldum. Zaten bir erişim denetimi kitaplığı olan [nAcl] (http://nacl.codeplex.com) bulundu, ancak gereksinimlerimi karşılamıyor – Ashkan

cevap

1

ACL nasıl depolanır ve erişilebilir? ACL girişlerinin PrincipalPermission nesnesine dönüştürülmesi mümkün mü? Öyleyse, erişim haklarını kontrol etmek için Demand() yöntemini kullanabilirsiniz, kullanıcılar erişemezse bir SecurityException atar.