MegaBites-AI/Windows-powershell
0372
1// Copyright (c) Microsoft Corporation.2// Licensed under the MIT License.3 4using System.Runtime.Serialization;5 6namespace System.Management.Automation7{8 /// <summary>9 /// This is a wrapper for exception class SecurityException.10 /// </summary>11 public class PSSecurityException : RuntimeException12 {13 #region ctor14 /// <summary>15 /// Recommended constructor for class PSSecurityException.16 /// </summary>17 /// <returns>Constructed object.</returns>18 public PSSecurityException()19 : base()20 {21 _errorRecord = new ErrorRecord(22 new ParentContainsErrorRecordException(this),23 "UnauthorizedAccess",24 ErrorCategory.SecurityError,25 null);26 _errorRecord.ErrorDetails = new ErrorDetails(SessionStateStrings.CanNotRun);27 _message = _errorRecord.ErrorDetails.Message;28 }29 30 /// <summary>31 /// Serialization constructor for class PSSecurityException.32 /// </summary>33 /// <param name="info">Serialization information.</param>34 /// <param name="context">Streaming context.</param>35 /// <returns>Constructed object.</returns>36 [Obsolete("Legacy serialization support is deprecated since .NET 8", DiagnosticId = "SYSLIB0051")]37 protected PSSecurityException(SerializationInfo info,38 StreamingContext context)39 {40 throw new NotSupportedException();41 }42 43 /// <summary>44 /// Constructor for class PSSecurityException.45 /// </summary>46 /// <param name="message"></param>47 /// <returns>Constructed object.</returns>48 public PSSecurityException(string message)49 : base(message)50 {51 _message = message;52 _errorRecord = new ErrorRecord(53 new ParentContainsErrorRecordException(this),54 "UnauthorizedAccess",55 ErrorCategory.SecurityError,56 null);57 _errorRecord.ErrorDetails = new ErrorDetails(message);58 }59 60 /// <summary>61 /// Constructor for class PSSecurityException.62 /// </summary>63 /// <param name="message"></param>64 /// <param name="innerException"></param>65 /// <returns>Constructed object.</returns>66 public PSSecurityException(string message,67 Exception innerException)68 : base(message, innerException)69 {70 _errorRecord = new ErrorRecord(71 new ParentContainsErrorRecordException(this),72 "UnauthorizedAccess",73 ErrorCategory.SecurityError,74 null);75 _errorRecord.ErrorDetails = new ErrorDetails(message);76 _message = _errorRecord.ErrorDetails.Message;77 }78 #endregion ctor79 80 /// <summary>81 /// Gets the ErrorRecord information for this exception.82 /// </summary>83 public override ErrorRecord ErrorRecord84 {85 get86 {87 _errorRecord ??= new ErrorRecord(88 new ParentContainsErrorRecordException(this),89 "UnauthorizedAccess",90 ErrorCategory.SecurityError,91 null);92 93 return _errorRecord;94 }95 }96 97 private ErrorRecord _errorRecord;98 99 /// <summary>100 /// Exception.Message is get-only, but you can effectively101 /// set it in a subclass by overriding this virtual property.102 /// </summary>103 /// <value></value>104 public override string Message105 {106 get { return _message; }107 }108 109 private readonly string _message;110 }111}112 