SEBWIN-309: Extended detection mechanism for configuration file downloads.
This commit is contained in:
parent
7df1fe5f03
commit
92d22a8437
3 changed files with 14 additions and 3 deletions
|
@ -44,12 +44,17 @@ namespace SafeExamBrowser.Browser.Handlers
|
|||
public void OnBeforeDownload(IWebBrowser webBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
|
||||
{
|
||||
var uri = new Uri(downloadItem.Url);
|
||||
var extension = Path.GetExtension(uri.AbsolutePath);
|
||||
var isConfigFile = String.Equals(extension, appConfig.ConfigurationFileExtension, StringComparison.OrdinalIgnoreCase);
|
||||
var uriExtension = Path.GetExtension(uri.AbsolutePath);
|
||||
var fileExtension = Path.GetExtension(downloadItem.SuggestedFileName);
|
||||
var isConfigurationFile = false;
|
||||
|
||||
isConfigurationFile |= string.Equals(appConfig.ConfigurationFileExtension, fileExtension, StringComparison.OrdinalIgnoreCase);
|
||||
isConfigurationFile |= string.Equals(appConfig.ConfigurationFileExtension, uriExtension, StringComparison.OrdinalIgnoreCase);
|
||||
isConfigurationFile |= string.Equals(appConfig.ConfigurationFileMimeType, downloadItem.MimeType, StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
logger.Debug($"Detected download request for '{uri}'.");
|
||||
|
||||
if (isConfigFile)
|
||||
if (isConfigurationFile)
|
||||
{
|
||||
Task.Run(() => RequestConfigurationFileDownload(downloadItem, callback));
|
||||
}
|
||||
|
|
|
@ -91,6 +91,11 @@ namespace SafeExamBrowser.Configuration.Contracts
|
|||
/// </summary>
|
||||
public string ConfigurationFileExtension { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The MIME type of configuration files for the application.
|
||||
/// </summary>
|
||||
public string ConfigurationFileMimeType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The build version of the application.
|
||||
/// </summary>
|
||||
|
|
|
@ -68,6 +68,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
|
|||
appConfig.ClientExecutablePath = Path.Combine(Path.GetDirectoryName(executablePath), $"{nameof(SafeExamBrowser)}.Client.exe");
|
||||
appConfig.ClientLogFilePath = Path.Combine(logFolder, $"{logFilePrefix}_Client.log");
|
||||
appConfig.ConfigurationFileExtension = ".seb";
|
||||
appConfig.ConfigurationFileMimeType = "application/seb";
|
||||
appConfig.ProgramBuildVersion = programBuild;
|
||||
appConfig.ProgramCopyright = programCopyright;
|
||||
appConfig.ProgramDataFilePath = Path.Combine(programDataFolder, DEFAULT_CONFIGURATION_NAME);
|
||||
|
|
Loading…
Add table
Reference in a new issue