que je veux exécuter une action personnalisée et seach registy puis définissez quelques variables de session après queaction personnalisée fonctionne avec privilèges d'administration et les variables de session est défini
Heare est ma fonction d'action personnalisée
[CustomAction]
public static ActionResult RegistryDetails(Session session)
{
try
{
CurrentSession = session;
string registryPath = @"SOFTWARE\XXX\Printers";
int printerIndex = 1;
RegistryKey prnKey = Registry.LocalMachine;
prnKey = prnKey.OpenSubKey(registryPath);
List<string> subKeyList = new List<string>();
subKeyList.AddRange(prnKey.GetSubKeyNames());
while(subKeyList.Contains(printerIndex.ToString()))
{
printerIndex++;
}
string newRegistryPath = registryPath + "\\" + printerIndex.ToString();
session["UtillRegKey"] = newRegistryPath;
session["PrinterNo"] = printerIndex.ToString();
}
catch (Exception ex)
{
CurrentSession.Log(ex.Message);
Record exceptionRec = new Record(0);
exceptionRec[0] = "Errors -" + ex.StackTrace.ToString();
return ActionResult.Failure;
}
return ActionResult.Success;
}
mais lancer cette action personnalisée, j'ai besoin des privilèges d'administration Donc j'ai défini Execute="deferred"
& Impersonate="no"
de ma définition d'action personnalisée. Cela rend session["PrinterNo"]
& session["UtillRegKey"]
inaccessible. car il devrait être Execute="immediate"
pour accéder aux variables de session. mais je ne peux pas définir comme Execute="immediate"
, ce qui empêchera l'exécution d'une action personnalisée exécutée en tant qu'administrateur.
Quelqu'un peut-il m'aider à surmonter cela.