public override void ValidateAssembly(SPSolutionValidationProperties properties, SPSolutionFile assembly) { IReadOnlyCollection<byte> bytes = assembly.OpenBinary(); if (bytes.LongCount() > 10000000) { properties.ValidationErrorMessage = "Assembly is too large"; properties.Valid = false; } }
public override void ValidateAssembly(SPSolutionValidationProperties properties, SPSolutionFile assembly) { properties.ValidationErrorUrl = "/_layouts/SolutionValidatorDemo/SolutionValidationErrorPage.aspx"; bool valid = true; string blockAssemblyName = "SandboxedWebPart";//"TestSolution"; string blockPKT = "29d96910438b4111"; // base.ValidateAssembly(properties, assembly); byte[] fileBytes = LoadBytes(assembly.OpenBinary()); Assembly a = Assembly.Load(fileBytes); string[] assemblyFullName = a.FullName.ToLower().Split(','); string assemblyName = assemblyFullName[0]; string version = assemblyFullName[1].Replace("version=", "").Trim(); string culture = assemblyFullName[2].Replace("culture=", "").Trim(); string publicKeyToken = assemblyFullName[3].Replace("publickeytoken=", "").Trim(); //Validate AssemblyName if (assemblyName.Equals(blockAssemblyName.ToLower())) { valid = false; properties.ValidationErrorMessage += "Assembly name '" + assemblyName + "' not valid. "; } //Validate PublicKeyToken if (publicKeyToken.Equals(blockPKT.ToLower())) { valid = false; properties.ValidationErrorMessage += "Assembly PublicKeyToken '" + publicKeyToken + "' not valid. "; } if (!valid) { properties.ValidationErrorUrl += "?ErrorMessage=" + properties.ValidationErrorMessage; } properties.Valid = valid; }