Trenutno ste van mreže; čekamo da se ponovo povežete na internet

Údaje o hesle v ICredentials nie preniesť WCF klienta služby WCF .NET Framework 4.5

DÔLEŽITÉ: Tento článok je preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft a možno ho opraviť prostredníctvom technológie Community Translation Framework (CTF). Microsoft ponúka strojovo preložené články, články upravené komunitou aj články preložené prekladateľmi, aby zabezpečil prístup ku všetkým článkom databázy Knowledge Base vo viacerých jazykoch. Strojovo preložené články aj upravené články môžu obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky. Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené neprávnym prekladom obsahu alebo jeho použitím zo strany našich zákazníkov. Ďalšie informácie o technológii CTF nájdete na lokalite http://support.microsoft.com/gp/machine-translation-corrections/sk.

Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 3082119
Príznaky
V Windows Communication Foundation (WCF) klienta vytvoríte nové rozhranie ICredentialsNetworkCredential triede pomocou mena a hesla, ktoré sú uvedené. Potom môžete volať WCF zmluvy postup, ktorý má ICredentials argument. Zistíte, že po obsadenie ICredentials, prijaté služby WCF na poverenia, heslo vlastnosť obsahuje prázdny reťazec. Vlastnosť Usernamevšak ešte držia platné správnu hodnotu.
Príčina
Ide o známy problém, ktorý bol zavedený Microsoft .NET Framework 4.0 pri nových vlastností, pridali SecurePasswordNetworkCredentialclass. Vlastnosť prepíše pôvodný reťazec heslo, keď je vlastnosť SecurePassword serializáciu zrušiť, na strane služby. SecurePasswordje typu SecureString. Predvolene nie je serializovaný a odoslať. Však ho prepíše pôvodný reťazec heslo pomocou prázdnu hodnotu. Aj toto správanie je zámerné.
Riešenie
Ak chcete vyriešiť tento problém, musíte informáciu meno používateľa a heslo služby nezávisle od poverenia. Môžete to vytvorením aplikáciou objekt poverenia a odovzdá poverenia na nový spôsob WCF služby, podporujúci objekt ako argument metódy. Preto tento objekt aplikáciou obsahuje citlivé informácie, werecommend, ktoré údaje sa odošlú cez šifrované pripojenie služby WCF pomocou buď https doprava správu vrstvu zabezpečenia alebo zabezpečenia.
Ďalšie informácie
Followingexample zobrazuje WCF služby, ktoré preberá problém. Služby WCF obsahuje nasledujúce zmluvy:

[ServiceContract]
[ServiceKnownType(typeof(NetworkCredential))]
verejné rozhranie ISlužba
{

[OperationContract]
reťazec GetData(ICredentials value);
}

Klient používa službu nasledovne:

iCredService.ServiceClient svcClient = nový iCredService.ServiceClient();
ICredentials iCred = nový System.Net.NetworkCredential ("ABC", "1234");
reťazec výsledok = výsledkoch = svcClient.GetData(iCred);

Pomocou programu Visual Studio a hodnotu nastavenia prerušenia služby. Heslo je prázdne. Keď preskúmate miestnych windows Microsoft Visual Studio, uvidíte nasledujúci text:

-value{System.Net.NetworkCredential}System.Net.ICredentials {System.Net.NetworkCredential}
-[System.Net.NetworkCredential]{System.Net.NetworkCredential}System.Net.NetworkCredential
Doména"reťazec"
Heslo"reťazec"
+SecurePassword{System.Security.SecureString}System.Security.SecureString
Reťazec "ABC" meno používateľa
ICredentials NetworkCredential SecurePassword WCF

Upozornenie: Tento článok bol preložený automaticky.

Svojstva

ID članka: 3082119 - Poslednji pregled: 08/30/2015 02:11:00 - Verzija: 1.0

Microsoft .NET Framework 4.0, Microsoft .NET Framework 4.5, Windows Communication Foundation 4, Windows Communication Foundation 4.5

  • kbmt KB3082119 KbMtsk
Povratne informacije