Ответ 1
Используйте С# AuthenticationException или InvalidCredentialException класс.
http://msdn.microsoft.com/en-us/library/system.security.authentication.authenticationexception.aspx
У меня есть части кода, где я хочу бросить исключение, когда пользователь не аутентифицирован/не авторизован.
Поэтому вместо того, чтобы писать собственное NotAuthenticatedException и NotAuthorizedException, мне было интересно, не существуют ли для них некоторые стандарты С#.
Я могу себе представить, что многие программы выбрасывают подобные Исключения, и это было бы не очень полезно, если бы все снова записывали свое колесо.
Используйте С# AuthenticationException или InvalidCredentialException класс.
http://msdn.microsoft.com/en-us/library/system.security.authentication.authenticationexception.aspx
Вы также можете использовать UnauthorizedAccessException для нарушений авторизации
Чтобы избежать повторного использования колеса, я бы использовал PrincipalPermission.Demand или PrincipalPermissionAttribute.
A SecurityException
будет выбрано для вас, если запрос не будет выполнен.
Если вы хотите явно исключить исключение, а не использовать PrincipalPermission.Demand
, вы можете рассмотреть возможность повторного использования существующего типа System.UnauthorizedAccessException, который описан в MSDN как
Исключение, которое вызывается, когда операционная система отказывает в доступе из-за ошибки ввода-вывода или определенного типа ошибки безопасности.
Это ваше приложение, а не ОС, которое отказывает в доступе, но, возможно, достаточно близко.