J'ai un service WCF, hébergé dans IIS, dont j'ai besoin pour usurper l'identité du compte.Usurpation WCF
dans mon Webconfig
<authentication mode="Windows"/>
<identity impersonate ="true"/>
Test ce qui suit, avec VS2008
public void ByRuleId(int ruleId)
{
try
{
string user = WindowsIdentity.GetCurrent().Name;
string name = Thread.CurrentPrincipal.Identity.Name;
........
//get the data as a string.
using (FileStream fs = File.Open(location, FileMode.Open))
using (StreamReader reader = new StreamReader(fs))
{
rawData = reader.ReadToEnd();
}
}
catch.....
}
cela fonctionne. si j'ajoute l'usurpation d'identité attribut
[OperationBehavior(Impersonation=ImpersonationOption.Required)]
public void ByRuleId(int ruleId)
cela ne fonctionne pas avec le message d'erreur
« Soit un niveau d'emprunt d'identité requis n'a pas été fourni, ou le niveau d'emprunt d'identité fourni est invalide. »
un peu farfouillé je remarqué la première manière a été authentifié par Kerboros et la deuxième voie vient d'échouer sur le type d'authentification
J'utilise l'outil client WCF, pour passer mes lettres de créance. Cela semble fonctionner.