Megosztás a következőn keresztül:


Ügyfélérvényesítés

A szolgáltatások gyakran tesznek közzé metaadatokat az ügyfélproxy-típusok automatikus generálásának és konfigurálásának engedélyezéséhez. Ha a szolgáltatás nem megbízható, az ügyfélalkalmazásoknak ellenőrizniük kell, hogy a metaadatok megfelelnek-e az ügyfélalkalmazás biztonságra, tranzakciókra, szolgáltatási szerződés típusára és így tovább vonatkozó szabályzatának. Az alábbi minta bemutatja, hogyan írhat olyan ügyfélvégpont-viselkedést, amely ellenőrzi a szolgáltatásvégpontot annak biztosítása érdekében, hogy a szolgáltatásvégpont biztonságosan használható legyen.

A szolgáltatás négy szolgáltatásvégpontot tesz elérhetővé. Az első végpont a WSDualHttpBindinget használja, a második végpont NTLM-hitelesítést, a harmadik végpont engedélyezi a tranzakciós folyamatot, a negyedik végpont pedig tanúsítványalapú hitelesítést.

Az ügyfél az MetadataResolver osztály használatával kéri le a szolgáltatás metaadatait. Az ügyfél érvényesítési viselkedéssel kényszeríti ki a kétoldalas kötések, az NTLM-hitelesítés és a tranzakciós folyamat tiltására vonatkozó szabályzatot. A szolgáltatás metaadataiból importált egyes ServiceEndpoint példányok esetében az ügyfélalkalmazás hozzáadja a InternetClientValidatorBehavior végpont viselkedésének egy példányát a ServiceEndpoint végponthoz való csatlakozáshoz a Windows Communication Foundation (WCF) ügyfélprogram használatával. A viselkedés metódusa a szolgáltatáson végzett bármely művelet meghívása Validate előtt fut, és az ügyfél szabályzatát kényszeríti ki a dobással InvalidOperationExceptions.

A minta létrehozása

  1. A megoldás létrehozásához kövesse a Windows Communication Foundation-minták készítésére vonatkozó utasításokat.

A minta futtatása ugyanazon a számítógépen

  1. Nyisson meg egy fejlesztői parancssort a Visual Studióhoz rendszergazdai jogosultságokkal, és futtassa a Setup.bat a minta telepítési mappából. Ez telepíti a minta futtatásához szükséges összes tanúsítványt.

  2. Futtassa a szolgáltatásalkalmazást a \service\bin\Debug fájlból.

  3. Futtassa az ügyfélalkalmazást a \client\bin\Debug fájlból. Az ügyféltevékenység megjelenik az ügyfélkonzol-alkalmazásban.

  4. Ha az ügyfél és a szolgáltatás nem tud kommunikálni, olvassa el a WCF-minták hibaelhárítási Tippek című témakört.

  5. Távolítsa el a tanúsítványokat a Cleanup.bat futtatásával, ha befejezte a mintát. Más biztonsági minták ugyanazokat a tanúsítványokat használják.

A minta futtatása számítógépeken

  1. A kiszolgálón a Visual Studio fejlesztői parancssorában rendszergazdai jogosultságokkal futtassa a következőt setup.bat service: . Az setup.bat argumentum futtatásával service létrehoz egy szolgáltatástanúsítványt a számítógép teljes tartománynevével, és exportálja a szolgáltatástanúsítványt egy Service.cer nevű fájlba.

  2. A kiszolgálón szerkessze az App.config fájlt, hogy tükrözze az új tanúsítvány nevét. Vagyis módosítsa a findValue<serviceCertificate elem attribútumát> a számítógép teljes tartománynevére.

  3. Másolja a Service.cer fájlt a szolgáltatáskönyvtárból az ügyfélszámítógép ügyfélkönyvtárába.

  4. Az ügyfélen nyisson meg egy fejlesztői parancssort a Visual Studióhoz rendszergazdai jogosultságokkal, és írja be a következőt setup.bat client: . Az argumentummal futtatva setup.batclient létrehoz egy Client.com nevű ügyféltanúsítványt, és exportálja az ügyféltanúsítványt egy Client.cer nevű fájlba.

  5. A client.cs fájlban módosítsa a MEX-végpont címértékét, valamint azt, findValue hogy az alapértelmezett kiszolgálótanúsítvány megfeleljen a szolgáltatás új címének. Ezt úgy teheti meg, hogy lecseréli a localhostot a kiszolgáló teljes tartománynevére. Újraépítés.

  6. Másolja a Client.cer fájlt az ügyfélkönyvtárból a kiszolgáló szolgáltatáskönyvtárába.

  7. Az ügyfélen futtassa a ImportServiceCert.bat egy rendszergazdai jogosultságokkal megnyitott Visual Studio fejlesztői parancssorában. Ez importálja a szolgáltatástanúsítványt a Service.cer fájlból a CurrentUser – Megbízható Kapcsolatok tárolóba.

  8. A kiszolgálón futtassa a ImportClientCert.bat egy rendszergazdai jogosultságokkal megnyitott Visual Studio fejlesztői parancssorában. Ez importálja az ügyféltanúsítványt a Client.cer fájlból a LocalMachine – Megbízható Kapcsolatok tárolóba.

  9. A szolgáltatásszámítógépen hozza létre a szolgáltatásprojektet a Visual Studióban, és futtassa a service.exe.

  10. Az ügyfélszámítógépen futtassa a client.exe.

    1. Ha az ügyfél és a szolgáltatás nem tud kommunikálni, olvassa el a WCF-minták hibaelhárítási Tippek című témakört.

A minta utáni tisztítás

  • A minta futtatása után futtassa a Cleanup.bat a mintamappában.

    Feljegyzés

    Ez a szkript nem távolítja el az ügyfél szolgáltatástanúsítványait, amikor a mintát számítógépeken futtatja. Ha olyan WCF-mintákat futtat, amelyek tanúsítványokat használnak a számítógépeken, mindenképpen törölje a CurrentUser – Megbízható Kapcsolatok tárolóban telepített szolgáltatástanúsítványokat. Ehhez használja a következő parancsot: certmgr -del -r CurrentUser -s TrustedPeople -c -n <Fully Qualified Server Machine Name>. For example: certmgr -del -r CurrentUser -s TrustedPeople -c -n server1.contoso.com.

Lásd még