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


Útmutató: Ügyfél megszemélyesítése szolgáltatáson

Ha megszemélyesít egy ügyfelet egy Windows Communication Foundation (WCF) szolgáltatásban, a szolgáltatás műveleteket hajthat végre az ügyfél nevében. A hozzáférés-vezérlési listához (ACL) tartozó műveletek, például a címtárakhoz és fájlokhoz való hozzáférés a számítógépen vagy egy SQL Server-adatbázishoz való hozzáférés esetén az ACL-ellenőrzés az ügyfél felhasználói fiókján van. Ez a témakör azokat az alapvető lépéseket mutatja be, amelyek szükségesek ahhoz, hogy egy Windows-tartományban lévő ügyfél megszemélyesítési szintet állítson be. Ennek egy működő példáját az ügyfél megszemélyesítésével foglalkozó cikkben talál. Az ügyfél megszemélyesítéséről további információt a Delegálás és megszemélyesítés című témakörben talál.

Feljegyzés

Ha az ügyfél és a szolgáltatás ugyanazon a számítógépen fut, Local SystemNetwork Serviceés az ügyfél egy rendszerfiók alatt fut (vagyis), az ügyfél nem személyíthető meg, ha egy biztonságos munkamenet állapotalapú biztonsági környezet-jogkivonatokkal van létrehozva. A WinForms- vagy konzolalkalmazások általában az aktuálisan bejelentkezett fiók alatt futnak, így a fiók alapértelmezés szerint megszemélyesíthető. Ha azonban az ügyfél egy ASP.NET lap, és az IIS 6.0-s vagy IIS 7.0-s verziójában van üzemeltetve, akkor az ügyfél alapértelmezés szerint a Network Service fiók alatt fut. A biztonságos munkameneteket támogató összes rendszer által biztosított kötés alapértelmezés szerint állapot nélküli biztonsági környezet jogkivonatot használ. Ha azonban az ügyfél egy ASP.NET lap, és állapotalapú biztonsági környezet jogkivonatokkal rendelkező biztonságos munkameneteket használ, az ügyfél nem személyesíthető meg. Az állapotalapú biztonsági környezet jogkivonatainak biztonságos munkamenetben való használatával kapcsolatos további információkért lásd : Biztonsági környezeti jogkivonat létrehozása biztonságos munkamenethez.

Ügyfél megszemélyesítésének engedélyezése gyorsítótárazott Windows-jogkivonatból egy szolgáltatásban

  1. Hozza létre a szolgáltatást. Ennek az alapműveletnek az oktatóanyagát az Első lépések oktatóanyagban tekinthet meg.

  2. Használjon windowsos hitelesítést használó kötést, és létrehoz egy munkamenetet, például NetTcpBinding vagy WSHttpBinding.

  3. A szolgáltatás felületének megvalósításakor alkalmazza az osztályt OperationBehaviorAttribute arra a metódusra, amely ügyfél-megszemélyesítést igényel. Állítsa be a tulajdonságot a Impersonation következőre Required: .

    [OperationBehavior(Impersonation=ImpersonationOption.Required)]
    public double Add(double a, double b)
    {
        return a + b;
    }
    
    <OperationBehavior(Impersonation:=ImpersonationOption.Required)> _
    Public Function Add(ByVal a As Double, ByVal b As Double) As Double _
       Implements ICalculator.Add
        Return a + b
    End Function
    

Az engedélyezett megszemélyesítési szint beállítása az ügyfélen

  1. Hozzon létre szolgáltatásügyfél-kódot a ServiceModel Metadata Segédprogram (Svcutil.exe) használatával. További információ: Szolgáltatások elérése WCF-ügyfél használatával.

  2. A WCF-ügyfél létrehozása után állítsa az AllowedImpersonationLevelWindowsClientCredential osztály tulajdonságát az TokenImpersonationLevel enumerálási értékek egyikére.

    Feljegyzés

    A használatához Delegationegyeztetett Kerberos-hitelesítést (más néven több lábú vagy többlépéses Kerberos-hitelesítést) kell használni. Ennek megvalósításáról az ajánlott biztonsági eljárások című témakörben olvashat.

    CalculatorClient client = new CalculatorClient("CalculatorEndpoint");
    client.ClientCredentials.Windows.AllowedImpersonationLevel =
        System.Security.Principal.TokenImpersonationLevel.Impersonation;
    
    Dim client As New CalculatorClient("CalculatorEndpoint")
    client.ClientCredentials.Windows.AllowedImpersonationLevel = _
        System.Security.Principal.TokenImpersonationLevel.Impersonation
    

Lásd még