Voici une application console trivial que je lance dans l'invite de commande:Thread.CurrentPrincipal en application console .NET
using System;
using System.Threading;
namespace Test
{
internal class Runner
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine(Thread.CurrentPrincipal.GetType().Name);
Console.WriteLine(Thread.CurrentPrincipal.Identity.Name);
}
}
}
La sortie est 'GenericPrincipal' et chaîne vide comme nom d'identité. Pourquoi le run-time construit GenericPrincipal
au lieu de WindowsPrincipal
? Comment puis-je le forcer à construire WindowsPrincipal
à partir du jeton de sécurité du processus de démarrage (cmd.exe dans mon cas)?
Qu'est-ce que vous obtenez lorsque vous interrogez 'actuelle WindowsIdentity = WindowsIdentity.GetCurrent();' ?? –
Il renvoie mon identité Windows actuelle comme je l'attends. Alors est-ce ma responsabilité de construire et d'attacher le principal? Ou existe-t-il un moyen de le spécifier dans le fichier de configuration, tout comme le paramètre de sécurité dans ASP.NET ou l'application WCF? – UserControl