Sdílet prostřednictvím


Autorizace přístupu k operacím služby

Tato ukázka ukazuje, jak pomocí <serviceAuthorization> povolit použití atributu PrincipalPermissionAttribute k autorizaci přístupu k operacím služby. Tato ukázka je založená na ukázce Začínáme . Služba a klient jsou nakonfigurovány pomocí wsHttpBinding>.< Atribut mode<zabezpečení> byl nastaven Message a clientCredentialType byl nastaven na Windows. Použije se PrincipalPermissionAttribute pro každou metodu služby a používá se k omezení přístupu k jednotlivým operacím. Volající musí být správcem Systému Windows pro přístup k jednotlivým operacím.

V této ukázce je klient konzolovou aplikací (.exe) a služba je hostovaná Internetová informační služba (IIS).

Poznámka:

Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.

Konfigurační soubor služby používá serviceAuthorization> k nastavení atributuprincipalPermissionMode:<

<behaviors>
  <serviceBehaviors>
    <behavior>
      <!-- The serviceAuthorization behavior sets the
           principalPermissionMode to UseWindowsGroups.
           This puts a WindowsPrincipal on the current thread when a
           service is invoked. -->
      <serviceAuthorization principalPermissionMode="UseWindowsGroups" />
    </behavior>
  </serviceBehaviors>
</behaviors>

principalPermissionMode Nastavení pro UseWindowsGroups povolení použití PrincipalPermissionAttribute na základě názvů skupin systému Windows.

Použije PrincipalPermissionAttribute se u každé operace, která vyžaduje, aby volající byl součástí skupiny Správců Systému Windows, jak je znázorněno v následujícím ukázkovém kódu.

[PrincipalPermission(SecurityAction.Demand,
                             Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
    double result = n1 + n2;
    return result;
}

Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v okně konzoly klienta. Klient úspěšně komunikuje s každou operací, pokud je spuštěný pod účtem, který je součástí skupiny Správa istrators. Jinak se přístup odepře. Pokud chcete experimentovat se selháním autorizace, spusťte klienta pod účtem, který není součástí skupiny Správa istrators. Stisknutím klávesy ENTER v okně konzoly ukončete klienta.

Služba může být upozorněna na selhání autorizace implementací IErrorHandler. Informace o implementaci IErrorHandlernaleznete v tématu Rozšíření kontroly nad zpracováním chyb a generováním sestav .

Nastavení, sestavení a spuštění ukázky

  1. Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.

  2. Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.

  3. Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.