我有部分代码,只要用户未经过身份验证/未授权,我想抛出异常。
因此,我没有编写自己的 NotAuthenticatedException 和 NotAuthorizedException,而是想知道是否还没有针对这些的一些 C# 标准。
我可以想象很多程序都会抛出类似的异常,如果每个人都再次“编写自己的轮子”,那将不是很有用。
我有部分代码,只要用户未经过身份验证/未授权,我想抛出异常。
因此,我没有编写自己的 NotAuthenticatedException 和 NotAuthorizedException,而是想知道是否还没有针对这些的一些 C# 标准。
我可以想象很多程序都会抛出类似的异常,如果每个人都再次“编写自己的轮子”,那将不是很有用。
您还可以将UnauthorizedAccessException用于授权违规
使用 C# AuthenticationException或InvalidCredentialException类。
https://docs.microsoft.com/en-us/dotnet/api/system.security.authentication.authenticationexception
为了避免重新发明轮子,我会使用PrincipalPermission.Demand或PrincipalPermissionAttribute。
SecurityException
如果请求失败,将为您抛出A。
如果您确实想显式抛出异常而不是使用PrincipalPermission.Demand
,则可以考虑重用现有类型System.UnauthorizedAccessException,MSDN 中将其描述为:
当操作系统由于 I/O 错误或特定类型的安全错误而拒绝访问时引发的异常。
是您的应用程序而不是操作系统拒绝访问,但可能足够接近。