diff --git a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs index cac9a35..d8bd773 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Manager - WebApplicationManager.cs @@ -331,7 +331,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS foreach (var p in sr.SelectedParameterList) { WebApplication wa=p.Parameters as WebApplication; - WebApplicationManagerCore.RegisterWebApplication(wa.Xml_SiteName, wa.Xml_PoolName, wa.Xml_AppName, wa.Xml_AppPhysicalPath, wa.Xml_SitePhysicalPath, 8080, wa.Xml_RecreatePool, wa.Xml_RecreateSite, wa.Xml_RecreateApp, wa.Xml_PoolPipeLineMode,wa.Xml_VirtualDirectoryList); + WebApplicationManagerCore.RegisterWebApplication(wa.Xml_SiteName, wa.Xml_PoolName, wa.Xml_AppName, wa.Xml_AppPhysicalPath, wa.Xml_SitePhysicalPath, 8080, wa.Xml_RecreatePool, wa.Xml_RecreateSite, wa.Xml_RecreateApp, wa.Xml_PoolPipeLineMode,wa.Xml_VirtualDirectoryList,wa.Xml_PoolIdentitytype,wa.Xml_PoolUsername,wa.Xml_PoolPassword); ColorConsole.WriteLine($"{wa.Xml_AppName} is registered in site {wa.Xml_SiteName} using pool {wa.Xml_PoolName}."); } return o; @@ -454,27 +454,26 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS foreach (var p in sr.SelectedParameterList) { var wa = p.Parameters as WebApplication; - GetPoolIdentityInfo(wa, out string username, out string password); + GetPoolIdentityInfo(wa, out string username, out string password, out ProcessModelIdentityType poolidentitytype); if (username == "EX" || password == "EX") { return o; } string olduserinfo = WebApplicationManagerCore.GetCurrentPoolIdentityInfo(wa); - WebApplicationManagerCore.SetPoolUserAccount(wa.Xml_AppName, wa.Xml_SiteName, username, password); + WebApplicationManagerCore.SetPoolUserAccount(wa.Xml_AppName, wa.Xml_SiteName, username, password, poolidentitytype); ColorConsole.WriteLine($"Pool identity changed for webapp {wa.Xml_AppName}."); ColorConsole.WriteLine($"From '{olduserinfo}' to '{WebApplicationManagerCore.GetCurrentPoolIdentityInfo(wa)}'"); } return o; } - private static void GetPoolIdentityInfo(WebApplication wa, out string username, out string password) + private static void GetPoolIdentityInfo(WebApplication wa, out string username, out string password,out ProcessModelIdentityType poolidentitytype) { - username = ""; password = ""; if (Menu.IsCommandMode()) { username = wa.Xml_PoolName; password = wa.Xml_PoolPassword; + poolidentitytype = wa.Xml_PoolIdentitytype; } else { var defaultinxml = WebApplicationManagerCore.GetDefaultPoolIdentityInfo(wa); - username=""; password = ""; string olduserinfo = WebApplicationManagerCore.GetCurrentPoolIdentityInfo(wa); ColorConsole.WriteLine($"Current user info: {olduserinfo}"); var un = $"Empty from XML={defaultinxml}."; @@ -485,12 +484,16 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS ColorConsole.WriteLine($" (LSY) {nameof(ProcessModelIdentityType.LocalSystem)}"); ColorConsole.WriteLine($" (NSE) {nameof(ProcessModelIdentityType.NetworkService)}"); username = ColorConsole.ReadLine().ToUpper(); + password = ""; + poolidentitytype = ProcessModelIdentityType.SpecificUser; if (username == "EX") { return; } - else if (string.IsNullOrEmpty(username)) { username=wa.Xml_PoolUsername; password = wa.Xml_PoolPassword; } - else if (username == "API" || username == nameof(ProcessModelIdentityType.ApplicationPoolIdentity)) { username = nameof(ProcessModelIdentityType.ApplicationPoolIdentity); } - else if (username == "LSE" || username == nameof(ProcessModelIdentityType.LocalService)) { username = nameof(ProcessModelIdentityType.LocalService); } - else if (username == "LSY" || username == nameof(ProcessModelIdentityType.LocalSystem)) { username = nameof(ProcessModelIdentityType.LocalSystem); } - else if (username == "NSE" || username == nameof(ProcessModelIdentityType.NetworkService)) { username = nameof(ProcessModelIdentityType.NetworkService); } + + if (string.IsNullOrEmpty(username)) { username=wa.Xml_PoolUsername; password = wa.Xml_PoolPassword; } + + if (username == "API" || username == nameof(ProcessModelIdentityType.ApplicationPoolIdentity)) { username = ""; password = ""; poolidentitytype = ProcessModelIdentityType.ApplicationPoolIdentity; } + else if (username == "LSE" || username == nameof(ProcessModelIdentityType.LocalService)) { username = ""; password = ""; poolidentitytype = ProcessModelIdentityType.LocalService; } + else if (username == "LSY" || username == nameof(ProcessModelIdentityType.LocalSystem)) { username = ""; password = ""; poolidentitytype = ProcessModelIdentityType.LocalSystem; } + else if (username == "NSE" || username == nameof(ProcessModelIdentityType.NetworkService)) { username = ""; password = ""; poolidentitytype = ProcessModelIdentityType.NetworkService; } else { ColorConsole.WriteLine("Enter password.[Enter]=finish input.Empty=no password.EX=exit"); @@ -666,7 +669,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS } #region private method:RegisterWebApplication - public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode,List vdlist) + public static void RegisterWebApplication(string sitename, string poolname, string appname, string poolphypath, string sitephypath, int siteport, bool recreatepool, bool recreatesite, bool recreateapp,ManagedPipelineMode plmode,List vdlist,ProcessModelIdentityType poolidentitytype, string poolusername,string pooluserpassword) { using (ServerManager serverManager = new ServerManager()) { @@ -683,6 +686,7 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS else if (recreateapp) { RemoveWebApp(serverManager, appname, sitename); CreateWebApp(serverManager, appname, poolname, sitename, poolphypath, vdlist); } CommitChanges(serverManager, poolname); + WebApplicationManagerCore.SetPoolUserAccount(appname, sitename, poolusername, pooluserpassword, poolidentitytype); } } #endregion private method:RegisterWebApplication @@ -715,20 +719,44 @@ namespace Vrh.Log4Pro.MaintenanceConsole.WebApplicationManagerNS } #endregion private method:SetImpersonateIdentity #region private method:SetPoolUserAccount - public static void SetPoolUserAccount(string appname, string sitename, string username, string password) + //public static void SetPoolUserAccountOLD(string appname, string sitename, string username, string password, ProcessModelIdentityType poolidentitytype) + //{ + // using (var sm = new ServerManager()) + // { + // //var pool = GetPool(GetPoolName(sitename, appname)); + // var pool = GetPool(sm, sitename, appname); + // if (username == nameof(ProcessModelIdentityType.ApplicationPoolIdentity) + // || username == nameof(ProcessModelIdentityType.LocalService) + // || username == nameof(ProcessModelIdentityType.LocalSystem) + // || username == nameof(ProcessModelIdentityType.NetworkService)) + // { + // pool.ProcessModel.UserName = null; + // pool.ProcessModel.Password = null; + // pool.ProcessModel.IdentityType = (ProcessModelIdentityType)Enum.Parse(typeof(ProcessModelIdentityType), username); + // } + // else // if (ProcessModelIdentityType.SpecificUser) + // { + // pool.ProcessModel.UserName = username; + // pool.ProcessModel.Password = password; + // pool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; + // } + // CommitChanges(sm, pool.Name); + // } + //} + public static void SetPoolUserAccount(string appname, string sitename, string username, string password, ProcessModelIdentityType poolidentitytype) { using (var sm = new ServerManager()) { //var pool = GetPool(GetPoolName(sitename, appname)); var pool = GetPool(sm, sitename, appname); - if (username == nameof(ProcessModelIdentityType.ApplicationPoolIdentity) - || username == nameof(ProcessModelIdentityType.LocalService) - || username == nameof(ProcessModelIdentityType.LocalSystem) - || username == nameof(ProcessModelIdentityType.NetworkService)) + if (poolidentitytype == ProcessModelIdentityType.ApplicationPoolIdentity + || poolidentitytype == ProcessModelIdentityType.LocalService + || poolidentitytype == ProcessModelIdentityType.LocalSystem + || poolidentitytype == ProcessModelIdentityType.NetworkService) { pool.ProcessModel.UserName = null; pool.ProcessModel.Password = null; - pool.ProcessModel.IdentityType = (ProcessModelIdentityType)Enum.Parse(typeof(ProcessModelIdentityType), username); + pool.ProcessModel.IdentityType = poolidentitytype; } else // if (ProcessModelIdentityType.SpecificUser) { diff --git a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs index 4fb3538..c92caee 100644 --- a/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs +++ b/Vrh.Log4Pro.MaintenanceConsole/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.7.1.0")] -[assembly: AssemblyFileVersion("1.7.1.0")] +[assembly: AssemblyVersion("1.7.2.0")] +[assembly: AssemblyFileVersion("1.7.2.0")] -- libgit2 0.21.2