C# Role-based security

У меня есть библиотека классов, которая содержит мой уровень доступа к базе данных, и я использую ее во всех моих проектах, которые работают с этой БД, теперь я хочу интегрировать безопасность в эту библиотеку, чтобы я мог возвращать разные данные для разных ролей безопасности. Каков наилучший способ достичь этого с помощью встроенной безопасности .NET? Я думал использовать System.Security.Permissions.PrincipalPermission, но я не вижу, как это может мне помочь, потому что любой, кто использует мою библиотеку, может написать клиентское приложение вроде этого

GenericIdentity genericIdentity = new GenericIdentity("User");
GenericPrincipal genericPrincipal = new GenericPrincipal(genericIdentity, new[] { "Administrator" });
Thread.CurrentPrincipal = genericPrincipal;

И они пройдут все мои требования главного разрешения

PrincipalPermission principalPermission = new PrincipalPermission(null, "Administrator");
principalPermission.Demand();

даже не аутентифицируясь. Либо я не понимаю эту модель безопасности, либо она просто ничего не защищает.

9
задан Alex Burtsev 19 November 2010 в 04:09
поделиться