Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 na 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á internetovou informační službou (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í atributu principalPermissionMode :
<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>
Nastavení principalPermissionMode na UseWindowsGroups umožňuje 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 Administrators; v opačném případě je přístup odepřen. Pokud chcete experimentovat se selháním autorizace, spusťte klienta pod účtem, který není součástí skupiny Administrators. 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. Viz Rozšíření kontroly nad zpracováním chyb a generováním sestav pro informace o implementaci IErrorHandler.
Jak nastavit, sestavit a spustit ukázku
Ujistěte se, že jste provedli instalační proceduru One-Time pro ukázky Windows Communication Foundation.
Pokud chcete sestavit verzi C# nebo Visual Basic .NET řešení, postupujte podle pokynů v Sestavení ukázek Windows Communication Foundation.
Pokud chcete spustit ukázku v konfiguraci s jedním počítačem nebo konfiguraci na více počítačích, postupujte podle pokynů v části Spouštění ukázek Windows Communication Foundation.