У меня есть класс с атрибутом
[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
public class MyProtectedClass { }
Это работает, как ожидается, и вызывающим абонентам отказано в доступе, когда текущий участник не аутентифицирован. В одном конкретном сценарии я хочу, чтобы эта логика была закорочена ... то есть вызывающей стороне не нужно проходить проверку подлинности. Одним из способов достижения этой цели, безусловно, было бы сбросить CurrentPrincipal потока с новым, свойство IsAuthenticated Identity которого имеет значение true ...
Тем не менее, я думаю, что я должен быть в состоянии сделать это с помощью вызывающего абонента Assert
:
[PrincipalPermission(SecurityAction.Assert, Authenticated = true)]
public class MyExemptedCallerClass { }
Однако это не дает желаемого эффекта, а метод в MyExemptedCallerClass
все еще вызывает исключение, пытаясь создать экземпляр MyProtectedClass
.
Есть идеи? Есть ли другой / лучший способ сделать это?
Спасибо.