Ich habe Teile des Codes, in denen ich eine Ausnahme auslösen möchte, wenn ein Benutzer nicht authentifiziert / nicht autorisiert ist.
Anstatt meine eigene NotAuthenticatedException und NotAuthorizedException zu schreiben, habe ich mich gefragt, ob es für diese nicht bereits einige C # -Standards gibt.
Ich kann mir vorstellen, dass viele Programme ähnliche Ausnahmen auslösen, und es wäre nicht sehr nützlich, wenn jeder wieder sein eigenes Rad schreibt.
c#
exception
authentication
authorization
Dirk Boer
quelle
quelle
SecurityException
für beide Szenarien verwenden.throw new NotAuthorizedException();
...Antworten:
Verwenden Sie die C # AuthenticationException- oder InvalidCredentialException- Klasse.
http://msdn.microsoft.com/en-us/library/system.security.authentication.authenticationexception.aspx
quelle
SecurityException
.Sie können auch UnauthorizedAccessException für Berechtigungsverletzungen verwenden
quelle
Um das Rad nicht neu zu erfinden, würde ich PrincipalPermission.Demand oder PrincipalPermissionAttribute verwenden .
A
SecurityException
wird für Sie geworfen, wenn die Anforderung fehlschlägt.Wenn Sie eine Ausnahme explizit auslösen möchten, anstatt sie zu verwenden
PrincipalPermission.Demand
, können Sie den vorhandenen Typ System.UnauthorizedAccessException wiederverwenden , der in MSDN wie folgt beschrieben wird:Es ist eher Ihre App als das Betriebssystem, das den Zugriff verweigert, aber vielleicht nah genug.
quelle