2009-09-12 15 views
6

Czy istnieje sposób na dostęp do zestawu .NET tylko dla autoryzowanych źródeł?Ograniczać dostęp do zestawu .NET?

Chodzi mi o to, że chcę mieć bibliotekę DLL zawierającą komponenty, ale nie chcę, aby ktokolwiek mógł korzystać z tych komponentów, ale innych plików DLL DLL w moim rozwiązaniu. Chcę, żeby były w oddzielnych bibliotekach DLL.

Ograniczenie przestrzeni nazw może być dobrym pomysłem, jeśli ta funkcja istnieje.

Czy istnieje sposób?

+0

korzysta z listy kontroli dostępu systemu OS? Zdobądź użytkownika i sprawdź dostęp do jakiegoś znanego pliku, katalogu, itp ... – kenny

+0

WSZYSTKO jest mile widziane, proszę napisać odpowiedź na swój pomysł, aby ludzie mogli głosować. – Shimmy

Odpowiedz

6

Można tworzyć klasy wewnętrzne. I podaj określone zespoły, aby uzyskać dostęp do tych klas za pomocą atrybutu InternalsVisibleTo.

Zespół powinien mieć silne nazwy. Więcej informacji o atrybucie można znaleźć pod adresem this article.

+0

Zobacz także http://www.bryancook.net/2008/05/tdd-tips-internalsvisibleto-keep-your.html – TrueWill

5

Problem z klasami wewnętrznymi Wewnętrzny nie ma znaczenia w IL, a klasy można wywoływać poprzez odbicie. Tak więc użycie InternalsVisibleTo jest bardziej pomocnikiem kompilatora niż cokolwiek innego.

Możesz pójść o krok dalej, używając StrongNameIdentityPermission, który sprawdzi klucz publiczny silnie nazwanego zestawu wywołującego kod - jeśli klucz publiczny nie będzie zgodny, zgłoszony zostanie wyjątek bezpieczeństwa. Jest to wymuszane nawet wtedy, gdy kod jest wywoływany poprzez odbicie.

Powiązane problemy