Event used to provide the password for loading encrypted files.
public event EventHandler<CodecsDecryptPasswordEventArgs> DecryptPassword
Public Event DecryptPassword As EventHandler(Of CodecsDecryptPasswordEventArgs)
event EventHandler<CodecsDecryptPasswordEventArgs^>^ DecryptPassword
|sender||object||The source of the event|
|e||CodecsDecryptPasswordEventArgs||The event data|
You need to provide a password for loading or retrieving information about encrypted files.
If you register a
DecryptPassword event handler, RasterCodecs automatically fires the
DecryptPassword event when attempting to load or to get information about an encrypted file. The operation can only succeed when setting the CodecsDecryptPasswordEventArgs.Password property in the event handler to the correct password.
Another way to provide the password is to set the RasterCodecs.CodecsLoadOptions.Decrypt.Password property beforehand. If the RasterCodecs.CodecsLoadOptions.Decrypt.Password property is set to the correct password, the
DecryptPassword event will not fire. In other words, the
DecryptPassword event is fired only if RasterCodecs.CodecsLoadOptions.Decrypt.Password is incorrect.
A typical event handler will bring up a message box containing an edit box and a label with a message: "File XXX is encrypted. Please provide the password for opening this file". The event handler then return the password provided to LEADTOOLS using the CodecsDecryptPasswordEventArgs parameter. The name of the file that triggered the event is in the CodecsDecryptPasswordEventArgs.FileName property.
If the password supplied in
DecryptPassword is incorrect, the event handler will be called again until:
1) The event handler returns the correct password.
2) The event handler aborts the operation gracefully by setting the CodecsDecryptPasswordEventArgs.Cancel property to true.
3) The event handler returns the same incorrect password twice in a row for the same file (the operation is aborted in this case to avoid a possible infinite loop).
If the current operation is cancelled by setting CodecsDecryptPasswordEventArgs.Cancel to true, RasterCodecs Class gracefully cancels the operation without firing an exception and GetInformation, Load/LoadSvg return as follows:
In other words, the application should not rely on the exception mechanism and check the returned object as described above to detect whether the user aborted the operation.
You should be very careful to avoid going into an infinite loop. For example, if you always return the same password from this event and the password is incorrect, the app will lock up because the event will keep getting fired.
private static void DecryptPasswordExample()
/* This example loads an encrypted file using the Decrypt password event */
using (RasterCodecs codecs = new RasterCodecs())
string srcFile = @"Encrypted.docx";
// Create a DecryptPassword handler
EventHandler<CodecsDecryptPasswordEventArgs> decryptPasswordHandler = (sender, e) =>
/* You can also bring up a message box informing the user that the 'e.FileName' file is encrypted and needs a password */
e.Password = "MyPassword";
/* Or you can set 'e.Cancel = true' to cancel the load */
// Install the DecryptPassword event handler
codecs.DecryptPassword += decryptPasswordHandler;
codecs.Options.Load.AllPages = true;
using (RasterImage image = codecs.Load(srcFile))
/* check that the image is not null to make sure the operation was not cancelled */
if (image != null)
codecs.Save(image, srcFile + ".tif", RasterImageFormat.TifLzw, 0);
Medical Web Viewer .NET
.NET, Java, Android, and iOS/macOS Assemblies
C API/C++ Class Libraries