public sealed class HashMembershipCondition : IMembershipCondition, System.Security.ISecurityEncodable, System.Security.ISecurityPolicyEncodable { // Public Constructors public HashMembershipCondition(System.Security.Cryptography.HashAlgorithm hashAlg, byte[ ] value); // Public Instance Properties public HashAlgorithm HashAlgorithm{set; get; } public byte[ ] HashValue{set; get; } // Public Instance Methods public bool Check(Evidence evidence); // implements IMembershipCondition public IMembershipCondition Copy( ); // implements IMembershipCondition public override bool Equals(object o); // overrides object public void FromXml(System.Security.SecurityElement e); // implements System.Security.ISecurityEncodable public void FromXml(System.Security.SecurityElement e, PolicyLevel level); // implements System.Security.ISecurityPolicyEncodable public override int GetHashCode( ); // overrides object public override string ToString( ); // overrides object public SecurityElement ToXml( ); // implements System.Security.ISecurityEncodable public SecurityElement ToXml(PolicyLevel level); // implements System.Security.ISecurityPolicyEncodable }
This membership condition class uses the value of Hash evidence to determine if an assembly or application domain qualifies for membership of a CodeGroup. The HashValue property contains the hash value required for membership, and the HashAlgorithm property contains a System.Security.Cryptography.HashAlgorithm object that implements the hash algorithm used to calculate the hash value.
When policy resolution calls the Check( ) method, if the provided Evidence collection contains a Hash object, the HashMembershipCondition object calls the Hash.GenerateHash( ) method and passes the System.Security.Cryptography.HashAlgorithm object from its HashAlgorithm property. If the returned hash value matches its HashValue property, then CodeGroup membership is granted.