Реализация IPermission - PullRequest
       10

Реализация IPermission

0 голосов
/ 23 марта 2010

Я рассматриваю возможность написания пользовательской реализации IPermission, но не ясно, как она должна работать. Я уже реализовал IPrincipal и IIdentity. Чего я хотел бы добиться, так это иметь возможность проверять права доступа к текущим полномочиям IPrincipal, а не к их ролям. Как правило, полномочия считываются / добавляются-удаляются / обновляются / отсутствуют для данного типа. Поэтому я хотел бы написать что-то вроде этого:

[CustomPermission(SecurityAction.Demand, Type = typeof(Foo), MinimumAuthorization = AuthorizationFlags.Read)]
public void SomeMethod(){}

Возможно ли это? Я просмотрел код на http://msdn.microsoft.com/en-us/library/system.security.ipermission.aspx.. Это показывает, как реализовать интерфейс, но я не понимаю, как приведенный выше псевдокод сможет проверять авторизацию IPrincipal для типа .

1 Ответ

1 голос
/ 23 марта 2010

Ваша CustomPermission реализация IPermission.Demand должна иметь возможность взглянуть на Thread.Current.CurrentPrincipal , привести его к вашему пользовательскому принципалу и оттуда исследовать ваши данные авторизации. ,

...