first commit

This commit is contained in:
Meik
2025-11-11 11:12:05 +01:00
commit 69e2cda8cd
912 changed files with 428004 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Web.Administration;
using C4IT.Logging;
using Microsoft.Win32;
using static C4IT.Logging.cLogManager;
namespace C4IT_DataHistoryProvider_Base
{
public static class IisConfigHelper
{
public static cIssConfiguration CheckIISConfiguration()
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
try
{
var _res = new cIssConfiguration();
CheckIISComponents(_res);
CheckIISConfiuration(_res);
return _res;
}
catch (Exception E)
{
LogException(E);
}
finally
{
if (CM != null) LogMethodEnd(CM);
}
return null;
}
private static void CheckIISComponents(cIssConfiguration _issConfig)
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
try
{
var _regBase = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
var _regKey = _regBase.OpenSubKey("SOFTWARE\\Microsoft\\InetStp\\Components", false);
if (_regKey != null)
{
var _regVal1 = _regKey.GetValue("WindowsAuthentication")?.ToString();
var _regVal2 = _regKey.GetValue("WindowsAuthenticationBinaries")?.ToString();
_issConfig.IsIssWindowsAuthenticationInstalled = _regVal1 == "1" && _regVal2 == "1";
var _regVal3 = _regKey.GetValue("WebSockets")?.ToString();
_issConfig.IsWebSocketInstalled = _regVal3 == "1";
}
}
catch (Exception E)
{
LogException(E);
}
finally
{
if (CM != null) LogMethodEnd(CM);
}
}
private static void CheckIISConfiuration(cIssConfiguration _issConfig)
{
MethodBase CM = null; if (cLogManager.DefaultLogger.IsDebug) { CM = MethodBase.GetCurrentMethod(); LogMethodBegin(CM); }
try
{
var _serverManager = new ServerManager();
var _siteCollections = _serverManager.Sites;
foreach (var _site in _siteCollections)
{
var _applications = _site.Applications;
foreach (var _application in _applications)
{
if (_application.Path.ToLowerInvariant() != "/f4sdcockpit")
continue;
var _appConfig = _application.GetWebConfiguration();
var _cfgWindowsAuthentication = _appConfig.GetSection("system.webServer/security/authentication/windowsAuthentication");
if (_cfgWindowsAuthentication != null)
{
var _attr = _cfgWindowsAuthentication.Attributes.FirstOrDefault(v => v.Name == "enabled");
if (_attr != null)
{
if (_attr.Value is bool _valWindowsAuthentication)
_issConfig.IsIssWindowsAuthenticationEnabled |= _valWindowsAuthentication;
}
}
}
}
}
catch (Exception E)
{
LogException(E);
}
finally
{
if (CM != null) LogMethodEnd(CM);
}
}
}
public class cIssConfiguration
{
public bool IsIssWindowsAuthenticationInstalled = false;
public bool IsWebSocketInstalled = false;
public bool IsIssWindowsAuthenticationEnabled = false;
}
}