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)
|
public void OnBeforeDownload(IWebBrowser webBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
|
||||||
{
|
{
|
||||||
var uri = new Uri(downloadItem.Url);
|
var uri = new Uri(downloadItem.Url);
|
||||||
var extension = Path.GetExtension(uri.AbsolutePath);
|
var uriExtension = Path.GetExtension(uri.AbsolutePath);
|
||||||
var isConfigFile = String.Equals(extension, appConfig.ConfigurationFileExtension, StringComparison.OrdinalIgnoreCase);
|
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}'.");
|
logger.Debug($"Detected download request for '{uri}'.");
|
||||||
|
|
||||||
if (isConfigFile)
|
if (isConfigurationFile)
|
||||||
{
|
{
|
||||||
Task.Run(() => RequestConfigurationFileDownload(downloadItem, callback));
|
Task.Run(() => RequestConfigurationFileDownload(downloadItem, callback));
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,11 @@ namespace SafeExamBrowser.Configuration.Contracts
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ConfigurationFileExtension { get; set; }
|
public string ConfigurationFileExtension { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The MIME type of configuration files for the application.
|
||||||
|
/// </summary>
|
||||||
|
public string ConfigurationFileMimeType { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The build version of the application.
|
/// The build version of the application.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -68,6 +68,7 @@ namespace SafeExamBrowser.Configuration.ConfigurationData
|
||||||
appConfig.ClientExecutablePath = Path.Combine(Path.GetDirectoryName(executablePath), $"{nameof(SafeExamBrowser)}.Client.exe");
|
appConfig.ClientExecutablePath = Path.Combine(Path.GetDirectoryName(executablePath), $"{nameof(SafeExamBrowser)}.Client.exe");
|
||||||
appConfig.ClientLogFilePath = Path.Combine(logFolder, $"{logFilePrefix}_Client.log");
|
appConfig.ClientLogFilePath = Path.Combine(logFolder, $"{logFilePrefix}_Client.log");
|
||||||
appConfig.ConfigurationFileExtension = ".seb";
|
appConfig.ConfigurationFileExtension = ".seb";
|
||||||
|
appConfig.ConfigurationFileMimeType = "application/seb";
|
||||||
appConfig.ProgramBuildVersion = programBuild;
|
appConfig.ProgramBuildVersion = programBuild;
|
||||||
appConfig.ProgramCopyright = programCopyright;
|
appConfig.ProgramCopyright = programCopyright;
|
||||||
appConfig.ProgramDataFilePath = Path.Combine(programDataFolder, DEFAULT_CONFIGURATION_NAME);
|
appConfig.ProgramDataFilePath = Path.Combine(programDataFolder, DEFAULT_CONFIGURATION_NAME);
|
||||||
|
|
Loading…
Add table
Reference in a new issue