diff --git a/src/libraries/System.Security.Claims/ref/System.Security.Claims.cs b/src/libraries/System.Security.Claims/ref/System.Security.Claims.cs index 54ab521ae75ccc..03cc48db5077e8 100644 --- a/src/libraries/System.Security.Claims/ref/System.Security.Claims.cs +++ b/src/libraries/System.Security.Claims/ref/System.Security.Claims.cs @@ -10,27 +10,27 @@ namespace System.Security.Claims public partial class Claim { public Claim(System.IO.BinaryReader reader) { } - public Claim(System.IO.BinaryReader reader, System.Security.Claims.ClaimsIdentity subject) { } + public Claim(System.IO.BinaryReader reader, System.Security.Claims.ClaimsIdentity? subject) { } protected Claim(System.Security.Claims.Claim other) { } - protected Claim(System.Security.Claims.Claim other, System.Security.Claims.ClaimsIdentity subject) { } + protected Claim(System.Security.Claims.Claim other, System.Security.Claims.ClaimsIdentity? subject) { } public Claim(string type, string value) { } - public Claim(string type, string value, string valueType) { } - public Claim(string type, string value, string valueType, string issuer) { } - public Claim(string type, string value, string valueType, string issuer, string originalIssuer) { } - public Claim(string type, string value, string valueType, string issuer, string originalIssuer, System.Security.Claims.ClaimsIdentity subject) { } - protected virtual byte[] CustomSerializationData { get { throw null; } } + public Claim(string type, string value, string? valueType) { } + public Claim(string type, string value, string? valueType, string? issuer) { } + public Claim(string type, string value, string? valueType, string? issuer, string? originalIssuer) { } + public Claim(string type, string value, string? valueType, string? issuer, string? originalIssuer, System.Security.Claims.ClaimsIdentity? subject) { } + protected virtual byte[]? CustomSerializationData { get { throw null; } } public string Issuer { get { throw null; } } public string OriginalIssuer { get { throw null; } } - public System.Collections.Generic.IDictionary Properties { get { throw null; } } - public System.Security.Claims.ClaimsIdentity Subject { get { throw null; } } + public System.Collections.Generic.IDictionary Properties { get { throw null; } } + public System.Security.Claims.ClaimsIdentity? Subject { get { throw null; } } public string Type { get { throw null; } } public string Value { get { throw null; } } public string ValueType { get { throw null; } } public virtual System.Security.Claims.Claim Clone() { throw null; } - public virtual System.Security.Claims.Claim Clone(System.Security.Claims.ClaimsIdentity identity) { throw null; } + public virtual System.Security.Claims.Claim Clone(System.Security.Claims.ClaimsIdentity? identity) { throw null; } public override string ToString() { throw null; } public virtual void WriteTo(System.IO.BinaryWriter writer) { } - protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[] userData) { } + protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[]? userData) { } } public partial class ClaimsIdentity : System.Security.Principal.IIdentity { @@ -38,43 +38,43 @@ public partial class ClaimsIdentity : System.Security.Principal.IIdentity public const string DefaultNameClaimType = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"; public const string DefaultRoleClaimType = "http://schemas.microsoft.com/ws/2008/06/identity/claims/role"; public ClaimsIdentity() { } - public ClaimsIdentity(System.Collections.Generic.IEnumerable claims) { } - public ClaimsIdentity(System.Collections.Generic.IEnumerable claims, string authenticationType) { } - public ClaimsIdentity(System.Collections.Generic.IEnumerable claims, string authenticationType, string nameType, string roleType) { } + public ClaimsIdentity(System.Collections.Generic.IEnumerable? claims) { } + public ClaimsIdentity(System.Collections.Generic.IEnumerable? claims, string? authenticationType) { } + public ClaimsIdentity(System.Collections.Generic.IEnumerable? claims, string? authenticationType, string? nameType, string? roleType) { } public ClaimsIdentity(System.IO.BinaryReader reader) { } protected ClaimsIdentity(System.Runtime.Serialization.SerializationInfo info) { } protected ClaimsIdentity(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { } protected ClaimsIdentity(System.Security.Claims.ClaimsIdentity other) { } - public ClaimsIdentity(System.Security.Principal.IIdentity identity) { } - public ClaimsIdentity(System.Security.Principal.IIdentity identity, System.Collections.Generic.IEnumerable claims) { } - public ClaimsIdentity(System.Security.Principal.IIdentity identity, System.Collections.Generic.IEnumerable claims, string authenticationType, string nameType, string roleType) { } - public ClaimsIdentity(string authenticationType) { } - public ClaimsIdentity(string authenticationType, string nameType, string roleType) { } - public System.Security.Claims.ClaimsIdentity Actor { get { throw null; } set { } } - public virtual string AuthenticationType { get { throw null; } } - public object BootstrapContext { get { throw null; } set { } } + public ClaimsIdentity(System.Security.Principal.IIdentity? identity) { } + public ClaimsIdentity(System.Security.Principal.IIdentity? identity, System.Collections.Generic.IEnumerable? claims) { } + public ClaimsIdentity(System.Security.Principal.IIdentity? identity, System.Collections.Generic.IEnumerable? claims, string? authenticationType, string? nameType, string? roleType) { } + public ClaimsIdentity(string? authenticationType) { } + public ClaimsIdentity(string? authenticationType, string? nameType, string? roleType) { } + public System.Security.Claims.ClaimsIdentity? Actor { get { throw null; } set { } } + public virtual string? AuthenticationType { get { throw null; } } + public object? BootstrapContext { get { throw null; } set { } } public virtual System.Collections.Generic.IEnumerable Claims { get { throw null; } } - protected virtual byte[] CustomSerializationData { get { throw null; } } + protected virtual byte[]? CustomSerializationData { get { throw null; } } public virtual bool IsAuthenticated { get { throw null; } } - public string Label { get { throw null; } set { } } - public virtual string Name { get { throw null; } } + public string? Label { get { throw null; } set { } } + public virtual string? Name { get { throw null; } } public string NameClaimType { get { throw null; } } public string RoleClaimType { get { throw null; } } public virtual void AddClaim(System.Security.Claims.Claim claim) { } - public virtual void AddClaims(System.Collections.Generic.IEnumerable claims) { } + public virtual void AddClaims(System.Collections.Generic.IEnumerable claims) { } public virtual System.Security.Claims.ClaimsIdentity Clone() { throw null; } protected virtual System.Security.Claims.Claim CreateClaim(System.IO.BinaryReader reader) { throw null; } public virtual System.Collections.Generic.IEnumerable FindAll(System.Predicate match) { throw null; } public virtual System.Collections.Generic.IEnumerable FindAll(string type) { throw null; } - public virtual System.Security.Claims.Claim FindFirst(System.Predicate match) { throw null; } - public virtual System.Security.Claims.Claim FindFirst(string type) { throw null; } + public virtual System.Security.Claims.Claim? FindFirst(System.Predicate match) { throw null; } + public virtual System.Security.Claims.Claim? FindFirst(string type) { throw null; } protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { } public virtual bool HasClaim(System.Predicate match) { throw null; } public virtual bool HasClaim(string type, string value) { throw null; } - public virtual void RemoveClaim(System.Security.Claims.Claim claim) { } - public virtual bool TryRemoveClaim(System.Security.Claims.Claim claim) { throw null; } + public virtual void RemoveClaim(System.Security.Claims.Claim? claim) { } + public virtual bool TryRemoveClaim(System.Security.Claims.Claim? claim) { throw null; } public virtual void WriteTo(System.IO.BinaryWriter writer) { } - protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[] userData) { } + protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[]? userData) { } } public partial class ClaimsPrincipal : System.Security.Principal.IPrincipal { @@ -86,25 +86,25 @@ public ClaimsPrincipal(System.Security.Principal.IIdentity identity) { } public ClaimsPrincipal(System.Security.Principal.IPrincipal principal) { } public virtual System.Collections.Generic.IEnumerable Claims { get { throw null; } } public static System.Func ClaimsPrincipalSelector { get { throw null; } set { } } - public static System.Security.Claims.ClaimsPrincipal Current { get { throw null; } } - protected virtual byte[] CustomSerializationData { get { throw null; } } + public static System.Security.Claims.ClaimsPrincipal? Current { get { throw null; } } + protected virtual byte[]? CustomSerializationData { get { throw null; } } public virtual System.Collections.Generic.IEnumerable Identities { get { throw null; } } - public virtual System.Security.Principal.IIdentity Identity { get { throw null; } } - public static System.Func, System.Security.Claims.ClaimsIdentity> PrimaryIdentitySelector { get { throw null; } set { } } + public virtual System.Security.Principal.IIdentity? Identity { get { throw null; } } + public static System.Func, System.Security.Claims.ClaimsIdentity?> PrimaryIdentitySelector { get { throw null; } set { } } public virtual void AddIdentities(System.Collections.Generic.IEnumerable identities) { } public virtual void AddIdentity(System.Security.Claims.ClaimsIdentity identity) { } public virtual System.Security.Claims.ClaimsPrincipal Clone() { throw null; } protected virtual System.Security.Claims.ClaimsIdentity CreateClaimsIdentity(System.IO.BinaryReader reader) { throw null; } public virtual System.Collections.Generic.IEnumerable FindAll(System.Predicate match) { throw null; } public virtual System.Collections.Generic.IEnumerable FindAll(string type) { throw null; } - public virtual System.Security.Claims.Claim FindFirst(System.Predicate match) { throw null; } - public virtual System.Security.Claims.Claim FindFirst(string type) { throw null; } + public virtual System.Security.Claims.Claim? FindFirst(System.Predicate match) { throw null; } + public virtual System.Security.Claims.Claim? FindFirst(string type) { throw null; } protected virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { } public virtual bool HasClaim(System.Predicate match) { throw null; } public virtual bool HasClaim(string type, string value) { throw null; } public virtual bool IsInRole(string role) { throw null; } public virtual void WriteTo(System.IO.BinaryWriter writer) { } - protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[] userData) { } + protected virtual void WriteTo(System.IO.BinaryWriter writer, byte[]? userData) { } } public static partial class ClaimTypes { @@ -209,8 +209,8 @@ public GenericIdentity(string name, string type) { } } public partial class GenericPrincipal : System.Security.Claims.ClaimsPrincipal { - public GenericPrincipal(System.Security.Principal.IIdentity identity, string[] roles) { } + public GenericPrincipal(System.Security.Principal.IIdentity identity, string[]? roles) { } public override System.Security.Principal.IIdentity Identity { get { throw null; } } - public override bool IsInRole(string role) { throw null; } + public override bool IsInRole(string? role) { throw null; } } } diff --git a/src/libraries/System.Security.Claims/ref/System.Security.Claims.csproj b/src/libraries/System.Security.Claims/ref/System.Security.Claims.csproj index f50b03583ce946..644919c10192bd 100644 --- a/src/libraries/System.Security.Claims/ref/System.Security.Claims.csproj +++ b/src/libraries/System.Security.Claims/ref/System.Security.Claims.csproj @@ -1,6 +1,7 @@ $(NetCoreAppCurrent)-Debug;$(NetCoreAppCurrent)-Release + enable diff --git a/src/libraries/System.Security.Claims/src/System.Security.Claims.csproj b/src/libraries/System.Security.Claims/src/System.Security.Claims.csproj index 1158601bc31e31..12c7885a9f2c6b 100644 --- a/src/libraries/System.Security.Claims/src/System.Security.Claims.csproj +++ b/src/libraries/System.Security.Claims/src/System.Security.Claims.csproj @@ -2,6 +2,7 @@ System.Security.Claims $(NetCoreAppCurrent)-Debug;$(NetCoreAppCurrent)-Release + enable diff --git a/src/libraries/System.Security.Claims/src/System/Security/Claims/Claim.cs b/src/libraries/System.Security.Claims/src/System/Security/Claims/Claim.cs index 785383437176bf..d48914daf00cdc 100644 --- a/src/libraries/System.Security.Claims/src/System/Security/Claims/Claim.cs +++ b/src/libraries/System.Security.Claims/src/System/Security/Claims/Claim.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Collections.Generic; +using System.Diagnostics; using System.IO; namespace System.Security.Claims @@ -27,13 +28,13 @@ private enum SerializationMask UserData = 128, } - private readonly byte[] _userSerializationData; + private readonly byte[]? _userSerializationData; private readonly string _issuer; private readonly string _originalIssuer; - private Dictionary _properties; + private Dictionary? _properties; - private readonly ClaimsIdentity _subject; + private readonly ClaimsIdentity? _subject; private readonly string _type; private readonly string _value; private readonly string _valueType; @@ -56,7 +57,7 @@ public Claim(BinaryReader reader) /// a pointing to a . /// the value for , which is the that has these claims. /// if 'reader' is null. - public Claim(BinaryReader reader, ClaimsIdentity subject) + public Claim(BinaryReader reader, ClaimsIdentity? subject) { if (reader == null) { @@ -157,7 +158,7 @@ public Claim(BinaryReader reader, ClaimsIdentity subject) /// /// public Claim(string type, string value) - : this(type, value, ClaimValueTypes.String, ClaimsIdentity.DefaultIssuer, ClaimsIdentity.DefaultIssuer, (ClaimsIdentity)null) + : this(type, value, ClaimValueTypes.String, ClaimsIdentity.DefaultIssuer, ClaimsIdentity.DefaultIssuer, (ClaimsIdentity?)null) { } @@ -176,8 +177,8 @@ public Claim(string type, string value) /// /// /// - public Claim(string type, string value, string valueType) - : this(type, value, valueType, ClaimsIdentity.DefaultIssuer, ClaimsIdentity.DefaultIssuer, (ClaimsIdentity)null) + public Claim(string type, string value, string? valueType) + : this(type, value, valueType, ClaimsIdentity.DefaultIssuer, ClaimsIdentity.DefaultIssuer, (ClaimsIdentity?)null) { } @@ -196,8 +197,8 @@ public Claim(string type, string value, string valueType) /// /// /// - public Claim(string type, string value, string valueType, string issuer) - : this(type, value, valueType, issuer, issuer, (ClaimsIdentity)null) + public Claim(string type, string value, string? valueType, string? issuer) + : this(type, value, valueType, issuer, issuer, (ClaimsIdentity?)null) { } @@ -216,8 +217,8 @@ public Claim(string type, string value, string valueType, string issuer) /// /// /// - public Claim(string type, string value, string valueType, string issuer, string originalIssuer) - : this(type, value, valueType, issuer, originalIssuer, (ClaimsIdentity)null) + public Claim(string type, string value, string? valueType, string? issuer, string? originalIssuer) + : this(type, value, valueType, issuer, originalIssuer, (ClaimsIdentity?)null) { } @@ -234,7 +235,7 @@ public Claim(string type, string value, string valueType, string issuer, string /// /// /// - public Claim(string type, string value, string valueType, string issuer, string originalIssuer, ClaimsIdentity subject) + public Claim(string type, string value, string? valueType, string? issuer, string? originalIssuer, ClaimsIdentity? subject) : this(type, value, valueType, issuer, originalIssuer, subject, null, null) { } @@ -251,7 +252,7 @@ public Claim(string type, string value, string valueType, string issuer, string /// The subject that this claim describes. /// This allows adding a property when adding a Claim. /// The value associated with the property. - internal Claim(string type, string value, string valueType, string issuer, string originalIssuer, ClaimsIdentity subject, string propertyKey, string propertyValue) + internal Claim(string type, string value, string? valueType, string? issuer, string? originalIssuer, ClaimsIdentity? subject, string? propertyKey, string? propertyValue) { if (type == null) { @@ -273,7 +274,7 @@ internal Claim(string type, string value, string valueType, string issuer, strin if (propertyKey != null) { _properties = new Dictionary(); - _properties[propertyKey] = propertyValue; + _properties[propertyKey] = propertyValue!; } } @@ -284,7 +285,7 @@ internal Claim(string type, string value, string valueType, string issuer, strin /// will be set to 'null'. /// if 'other' is null. protected Claim(Claim other) - : this(other, (other == null ? (ClaimsIdentity)null : other._subject)) + : this(other, (other == null ? (ClaimsIdentity?)null : other._subject)) { } @@ -295,7 +296,7 @@ protected Claim(Claim other) /// the to assign to . /// will be set to 'subject'. /// if 'other' is null. - protected Claim(Claim other, ClaimsIdentity subject) + protected Claim(Claim other, ClaimsIdentity? subject) { if (other == null) throw new ArgumentNullException(nameof(other)); @@ -320,7 +321,7 @@ protected Claim(Claim other, ClaimsIdentity subject) /// /// Contains any additional data provided by a derived type, typically set when calling . /// - protected virtual byte[] CustomSerializationData + protected virtual byte[]? CustomSerializationData { get { @@ -367,7 +368,7 @@ public IDictionary Properties /// /// Gets the subject of the . /// - public ClaimsIdentity Subject + public ClaimsIdentity? Subject { get { return _subject; } } @@ -403,7 +404,7 @@ public string ValueType /// public virtual Claim Clone() { - return Clone((ClaimsIdentity)null); + return Clone((ClaimsIdentity?)null); } /// @@ -411,7 +412,7 @@ public virtual Claim Clone() /// /// the value for , which is the that has these claims. /// will be set to 'identity'. - public virtual Claim Clone(ClaimsIdentity identity) + public virtual Claim Clone(ClaimsIdentity? identity) { return new Claim(this, identity); } @@ -432,7 +433,7 @@ public virtual void WriteTo(BinaryWriter writer) /// the to use for data storage. /// additional data provided by derived type. /// if 'writer' is null. - protected virtual void WriteTo(BinaryWriter writer, byte[] userData) + protected virtual void WriteTo(BinaryWriter writer, byte[]? userData) { if (writer == null) { @@ -514,7 +515,7 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) if ((mask & SerializationMask.HasProperties) == SerializationMask.HasProperties) { - writer.Write(_properties.Count); + writer.Write(_properties!.Count); foreach (var kvp in _properties) { writer.Write(kvp.Key); @@ -524,7 +525,7 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) if ((mask & SerializationMask.UserData) == SerializationMask.UserData) { - writer.Write(userData.Length); + writer.Write(userData!.Length); writer.Write(userData); } diff --git a/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsIdentity.cs b/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsIdentity.cs index 93c67bd66fe009..d1507e2314835e 100644 --- a/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsIdentity.cs +++ b/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsIdentity.cs @@ -27,12 +27,12 @@ private enum SerializationMask UserData = 128, } - private byte[] _userSerializationData; - private ClaimsIdentity _actor; - private string _authenticationType; - private object _bootstrapContext; - private List> _externalClaims; - private string _label; + private byte[]? _userSerializationData; + private ClaimsIdentity? _actor; + private string? _authenticationType; + private object? _bootstrapContext; + private List>? _externalClaims; + private string? _label; private readonly List _instanceClaims = new List(); private string _nameClaimType = DefaultNameClaimType; private string _roleClaimType = DefaultRoleClaimType; @@ -50,7 +50,7 @@ private enum SerializationMask /// Initializes an instance of . /// public ClaimsIdentity() - : this((IIdentity)null, (IEnumerable)null, (string)null, (string)null, (string)null) + : this((IIdentity?)null, (IEnumerable?)null, (string?)null, (string?)null, (string?)null) { } @@ -59,8 +59,8 @@ public ClaimsIdentity() /// /// supplies the and . /// for details on how internal values are set. - public ClaimsIdentity(IIdentity identity) - : this(identity, (IEnumerable)null, (string)null, (string)null, (string)null) + public ClaimsIdentity(IIdentity? identity) + : this(identity, (IEnumerable?)null, (string?)null, (string?)null, (string?)null) { } @@ -71,8 +71,8 @@ public ClaimsIdentity(IIdentity identity) /// /// for details on how internal values are set. /// - public ClaimsIdentity(IEnumerable claims) - : this((IIdentity)null, claims, (string)null, (string)null, (string)null) + public ClaimsIdentity(IEnumerable? claims) + : this((IIdentity?)null, claims, (string?)null, (string?)null, (string?)null) { } @@ -80,8 +80,8 @@ public ClaimsIdentity(IEnumerable claims) /// Initializes an instance of . /// /// The authentication method used to establish this identity. - public ClaimsIdentity(string authenticationType) - : this((IIdentity)null, (IEnumerable)null, authenticationType, (string)null, (string)null) + public ClaimsIdentity(string? authenticationType) + : this((IIdentity?)null, (IEnumerable?)null, authenticationType, (string?)null, (string?)null) { } @@ -91,8 +91,8 @@ public ClaimsIdentity(string authenticationType) /// associated with this instance. /// The authentication method used to establish this identity. /// for details on how internal values are set. - public ClaimsIdentity(IEnumerable claims, string authenticationType) - : this((IIdentity)null, claims, authenticationType, (string)null, (string)null) + public ClaimsIdentity(IEnumerable? claims, string? authenticationType) + : this((IIdentity?)null, claims, authenticationType, (string?)null, (string?)null) { } @@ -102,8 +102,8 @@ public ClaimsIdentity(IEnumerable claims, string authenticationType) /// supplies the and . /// associated with this instance. /// for details on how internal values are set. - public ClaimsIdentity(IIdentity identity, IEnumerable claims) - : this(identity, claims, (string)null, (string)null, (string)null) + public ClaimsIdentity(IIdentity? identity, IEnumerable? claims) + : this(identity, claims, (string?)null, (string?)null, (string?)null) { } @@ -114,8 +114,8 @@ public ClaimsIdentity(IIdentity identity, IEnumerable claims) /// The used when obtaining the value of . /// The used when performing logic for . /// for details on how internal values are set. - public ClaimsIdentity(string authenticationType, string nameType, string roleType) - : this((IIdentity)null, (IEnumerable)null, authenticationType, nameType, roleType) + public ClaimsIdentity(string? authenticationType, string? nameType, string? roleType) + : this((IIdentity?)null, (IEnumerable?)null, authenticationType, nameType, roleType) { } @@ -127,8 +127,8 @@ public ClaimsIdentity(string authenticationType, string nameType, string roleTyp /// The used when obtaining the value of . /// The used when performing logic for . /// for details on how internal values are set. - public ClaimsIdentity(IEnumerable claims, string authenticationType, string nameType, string roleType) - : this((IIdentity)null, claims, authenticationType, nameType, roleType) + public ClaimsIdentity(IEnumerable? claims, string? authenticationType, string? nameType, string? roleType) + : this((IIdentity?)null, claims, authenticationType, nameType, roleType) { } @@ -146,9 +146,9 @@ public ClaimsIdentity(IEnumerable claims, string authenticationType, stri /// Any 'External' claims are ignored. /// /// if 'identity' is a and results in a circular reference back to 'this'. - public ClaimsIdentity(IIdentity identity, IEnumerable claims, string authenticationType, string nameType, string roleType) + public ClaimsIdentity(IIdentity? identity, IEnumerable? claims, string? authenticationType, string? nameType, string? roleType) { - ClaimsIdentity claimsIdentity = identity as ClaimsIdentity; + ClaimsIdentity? claimsIdentity = identity as ClaimsIdentity; _authenticationType = (identity != null && string.IsNullOrEmpty(authenticationType)) ? identity.AuthenticationType : authenticationType; _nameClaimType = !string.IsNullOrEmpty(nameType) ? nameType : (claimsIdentity != null ? claimsIdentity._nameClaimType : DefaultNameClaimType); @@ -255,7 +255,7 @@ protected ClaimsIdentity(SerializationInfo info) /// /// Gets the authentication type that can be used to determine how this authenticated to an authority. /// - public virtual string AuthenticationType + public virtual string? AuthenticationType { get { return _authenticationType; } } @@ -272,7 +272,7 @@ public virtual bool IsAuthenticated /// Gets or sets a that was granted delegation rights. /// /// if 'value' results in a circular reference back to 'this'. - public ClaimsIdentity Actor + public ClaimsIdentity? Actor { get { return _actor; } set @@ -291,7 +291,7 @@ public ClaimsIdentity Actor /// /// Gets or sets a context that was used to create this . /// - public object BootstrapContext + public object? BootstrapContext { get { return _bootstrapContext; } set { _bootstrapContext = value; } @@ -321,7 +321,7 @@ private IEnumerable CombinedClaimsIterator() yield return _instanceClaims[i]; } - for (int j = 0; j < _externalClaims.Count; j++) + for (int j = 0; j < _externalClaims!.Count; j++) { if (_externalClaims[j] != null) { @@ -336,7 +336,7 @@ private IEnumerable CombinedClaimsIterator() /// /// Contains any additional data provided by a derived type, typically set when calling . /// - protected virtual byte[] CustomSerializationData + protected virtual byte[]? CustomSerializationData { get { @@ -363,7 +363,7 @@ internal List> ExternalClaims /// /// Gets or sets the label for this /// - public string Label + public string? Label { get { return _label; } set { _label = value; } @@ -373,12 +373,12 @@ public string Label /// Gets the Name of this . /// /// Calls where string == NameClaimType, if found, returns otherwise null. - public virtual string Name + public virtual string? Name { // just an accessor for getting the name claim get { - Claim claim = FindFirst(_nameClaimType); + Claim? claim = FindFirst(_nameClaimType); if (claim != null) { return claim.Value; @@ -441,14 +441,14 @@ public virtual void AddClaim(Claim claim) /// Enumeration of claims to add. /// Each claim is examined and if != this, then Claim.Clone(this) is called before the claim is added. /// if 'claims' is null. - public virtual void AddClaims(IEnumerable claims) + public virtual void AddClaims(IEnumerable claims) { if (claims == null) { throw new ArgumentNullException(nameof(claims)); } - foreach (Claim claim in claims) + foreach (Claim? claim in claims) { if (claim == null) { @@ -473,7 +473,7 @@ public virtual void AddClaims(IEnumerable claims) /// It is possible that a returned from cannot be removed. This would be the case for 'External' claims that are provided by reference. /// object.ReferenceEquals is used to 'match'. /// - public virtual bool TryRemoveClaim(Claim claim) + public virtual bool TryRemoveClaim(Claim? claim) { if (claim == null) { @@ -502,7 +502,7 @@ public virtual bool TryRemoveClaim(Claim claim) /// object.ReferenceEquals is used to 'match'. /// /// if 'claim' cannot be removed. - public virtual void RemoveClaim(Claim claim) + public virtual void RemoveClaim(Claim? claim) { if (!TryRemoveClaim(claim)) { @@ -515,9 +515,9 @@ public virtual void RemoveClaim(Claim claim) /// /// a to add to /// private only call from constructor, adds to internal list. - private void SafeAddClaims(IEnumerable claims) + private void SafeAddClaims(IEnumerable claims) { - foreach (Claim claim in claims) + foreach (Claim? claim in claims) { if (claim == null) continue; @@ -537,7 +537,7 @@ private void SafeAddClaims(IEnumerable claims) /// Adds claim to internal list. Calling Claim.Clone if Claim.Subject != this. /// /// private only call from constructor, adds to internal list. - private void SafeAddClaim(Claim claim) + private void SafeAddClaim(Claim? claim) { if (claim == null) return; @@ -606,7 +606,7 @@ public virtual IEnumerable FindAll(string type) /// The function that performs the matching logic. /// A , null if nothing matches. /// if 'match' is null. - public virtual Claim FindFirst(Predicate match) + public virtual Claim? FindFirst(Predicate match) { if (match == null) { @@ -631,7 +631,7 @@ public virtual Claim FindFirst(Predicate match) /// A , null if nothing matches. /// Comparison is: StringComparison.OrdinalIgnoreCase. /// if 'type' is null. - public virtual Claim FindFirst(string type) + public virtual Claim? FindFirst(string type) { if (type == null) { @@ -825,7 +825,7 @@ public virtual void WriteTo(BinaryWriter writer) /// the to use for data storage. /// additional data provided by derived type. /// if 'writer' is null. - protected virtual void WriteTo(BinaryWriter writer, byte[] userData) + protected virtual void WriteTo(BinaryWriter writer, byte[]? userData) { if (writer == null) { @@ -842,8 +842,7 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) if (_bootstrapContext != null) { - string rawData = _bootstrapContext as string; - if (rawData != null) + if (_bootstrapContext is string rawData) { mask |= SerializationMask.BootstrapConext; numberOfPropertiesWritten++; @@ -890,12 +889,12 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) writer.Write(numberOfPropertiesWritten); if ((mask & SerializationMask.AuthenticationType) == SerializationMask.AuthenticationType) { - writer.Write(_authenticationType); + writer.Write(_authenticationType!); } if ((mask & SerializationMask.BootstrapConext) == SerializationMask.BootstrapConext) { - writer.Write(_bootstrapContext as string); + writer.Write((string)_bootstrapContext!); } if ((mask & SerializationMask.NameClaimType) == SerializationMask.NameClaimType) @@ -910,7 +909,7 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) if ((mask & SerializationMask.HasLabel) == SerializationMask.HasLabel) { - writer.Write(_label); + writer.Write(_label!); } if ((mask & SerializationMask.HasClaims) == SerializationMask.HasClaims) @@ -924,12 +923,12 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) if ((mask & SerializationMask.Actor) == SerializationMask.Actor) { - _actor.WriteTo(writer); + _actor!.WriteTo(writer); } if ((mask & SerializationMask.UserData) == SerializationMask.UserData) { - writer.Write(userData.Length); + writer.Write(userData!.Length); writer.Write(userData); } diff --git a/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsPrincipal.cs b/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsPrincipal.cs index 6bc0b19f13cbf3..bc7dab0a78ee22 100644 --- a/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsPrincipal.cs +++ b/src/libraries/System.Security.Claims/src/System/Security/Claims/ClaimsPrincipal.cs @@ -22,9 +22,9 @@ private enum SerializationMask } private readonly List _identities = new List(); - private readonly byte[] _userSerializationData; + private readonly byte[]? _userSerializationData; - private static Func, ClaimsIdentity> s_identitySelector = SelectPrimaryIdentity; + private static Func, ClaimsIdentity?> s_identitySelector = SelectPrimaryIdentity; private static Func s_principalSelector = ClaimsPrincipalSelector; protected ClaimsPrincipal(SerializationInfo info, StreamingContext context) @@ -35,7 +35,7 @@ protected ClaimsPrincipal(SerializationInfo info, StreamingContext context) /// /// This method iterates through the collection of ClaimsIdentities and chooses an identity as the primary. /// - private static ClaimsIdentity SelectPrimaryIdentity(IEnumerable identities) + private static ClaimsIdentity? SelectPrimaryIdentity(IEnumerable identities) { if (identities == null) { @@ -53,7 +53,7 @@ private static ClaimsIdentity SelectPrimaryIdentity(IEnumerable return null; } - public static Func, ClaimsIdentity> PrimaryIdentitySelector + public static Func, ClaimsIdentity?> PrimaryIdentitySelector { get { @@ -111,8 +111,7 @@ public ClaimsPrincipal(IIdentity identity) throw new ArgumentNullException(nameof(identity)); } - ClaimsIdentity ci = identity as ClaimsIdentity; - if (ci != null) + if (identity is ClaimsIdentity ci) { _identities.Add(ci); } @@ -138,7 +137,7 @@ public ClaimsPrincipal(IPrincipal principal) // If IPrincipal is a ClaimsPrincipal add all of the identities // If IPrincipal is not a ClaimsPrincipal, create a new identity from IPrincipal.Identity // - ClaimsPrincipal cp = principal as ClaimsPrincipal; + ClaimsPrincipal? cp = principal as ClaimsPrincipal; if (null == cp) { _identities.Add(new ClaimsIdentity(principal.Identity)); @@ -242,7 +241,7 @@ public virtual IEnumerable Claims /// /// Contains any additional data provided by derived type, typically set when calling . /// - protected virtual byte[] CustomSerializationData + protected virtual byte[]? CustomSerializationData { get { @@ -277,7 +276,7 @@ protected virtual ClaimsIdentity CreateClaimsIdentity(BinaryReader reader) /// /// Returns the Current Principal by calling a delegate. Users may specify the delegate. /// - public static ClaimsPrincipal Current + public static ClaimsPrincipal? Current { // just accesses the current selected principal selector, doesn't set get @@ -350,14 +349,14 @@ public virtual IEnumerable FindAll(string type) /// A , null if nothing matches. /// Each is called. . /// if 'match' is null. - public virtual Claim FindFirst(Predicate match) + public virtual Claim? FindFirst(Predicate match) { if (match == null) { throw new ArgumentNullException(nameof(match)); } - Claim claim = null; + Claim? claim = null; foreach (ClaimsIdentity identity in Identities) { @@ -381,14 +380,14 @@ public virtual Claim FindFirst(Predicate match) /// A , null if nothing matches. /// Each is called. . /// if 'type' is null. - public virtual Claim FindFirst(string type) + public virtual Claim? FindFirst(string type) { if (type == null) { throw new ArgumentNullException(nameof(type)); } - Claim claim = null; + Claim? claim = null; for (int i = 0; i < _identities.Count; i++) { @@ -482,7 +481,7 @@ public virtual IEnumerable Identities /// /// Gets the identity of the current principal. /// - public virtual System.Security.Principal.IIdentity Identity + public virtual System.Security.Principal.IIdentity? Identity { get { @@ -535,7 +534,7 @@ public virtual void WriteTo(BinaryWriter writer) /// the to use for data storage. /// additional data provided by derived type. /// if 'writer' is null. - protected virtual void WriteTo(BinaryWriter writer, byte[] userData) + protected virtual void WriteTo(BinaryWriter writer, byte[]? userData) { if (writer == null) { @@ -569,7 +568,7 @@ protected virtual void WriteTo(BinaryWriter writer, byte[] userData) if ((mask & SerializationMask.UserData) == SerializationMask.UserData) { - writer.Write(userData.Length); + writer.Write(userData!.Length); writer.Write(userData); } diff --git a/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericIdentity.cs b/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericIdentity.cs index 1fb721b228c505..4f0cc83fecfd6d 100644 --- a/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericIdentity.cs +++ b/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericIdentity.cs @@ -36,11 +36,6 @@ public GenericIdentity(string name, string type) AddNameClaim(); } - private GenericIdentity() - : base() - { } - - protected GenericIdentity(GenericIdentity identity) : base(identity) { diff --git a/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericPrincipal.cs b/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericPrincipal.cs index aac4c43c5b68d7..8b4c9a56840926 100644 --- a/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericPrincipal.cs +++ b/src/libraries/System.Security.Claims/src/System/Security/Claims/GenericPrincipal.cs @@ -10,9 +10,9 @@ namespace System.Security.Principal public class GenericPrincipal : ClaimsPrincipal { private readonly IIdentity m_identity; - private readonly string[] m_roles; + private readonly string[]? m_roles; - public GenericPrincipal(IIdentity identity, string[] roles) + public GenericPrincipal(IIdentity identity, string[]? roles) { if (identity == null) throw new ArgumentNullException(nameof(identity)); @@ -33,11 +33,9 @@ public GenericPrincipal(IIdentity identity, string[] roles) /// /// helper method to add roles /// - private void AddIdentityWithRoles(IIdentity identity, string[] roles) + private void AddIdentityWithRoles(IIdentity identity, string[]? roles) { - ClaimsIdentity claimsIdentity = identity as ClaimsIdentity; - - if (claimsIdentity != null) + if (identity is ClaimsIdentity claimsIdentity) { claimsIdentity = claimsIdentity.Clone(); } @@ -70,7 +68,7 @@ public override IIdentity Identity get { return m_identity; } } - public override bool IsInRole(string role) + public override bool IsInRole(string? role) { if (role == null || m_roles == null) return false;