Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przykładzie pokazano, jak używać parametru< serviceAuthorization> w celu umożliwienia używania atrybutu PrincipalPermissionAttribute w celu autoryzowania dostępu do operacji usługi. Ten przykład jest oparty na przykładzie Wprowadzenie . Usługa i klient są konfigurowane przy użyciu usługi <wsHttpBinding>. Atrybut modezabezpieczeń<> został ustawiony na Message i clientCredentialType został ustawiony na Windows. Element PrincipalPermissionAttribute jest stosowany do każdej metody usługi i służy do ograniczania dostępu do każdej operacji. Obiekt wywołujący musi być administratorem systemu Windows, aby uzyskać dostęp do każdej operacji.
W tym przykładzie klient jest aplikacją konsolową (.exe), a usługa jest hostowana przez usługi Internet Information Services (IIS).
Uwaga / Notatka
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Plik konfiguracji usługi używa parametru< serviceAuthorization> do ustawienia atrybutuprincipalPermissionMode:
<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>
Ustawienie principalPermissionMode do UseWindowsGroups umożliwia użycie PrincipalPermissionAttribute na podstawie nazw grup systemu Windows.
Element PrincipalPermissionAttribute jest stosowany do każdej operacji, aby wymagać, aby obiekt wywołujący był częścią grupy administratorzy systemu Windows, jak pokazano w poniższym przykładowym kodzie.
[PrincipalPermission(SecurityAction.Demand,
Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknie konsoli klienta. Klient pomyślnie komunikuje się z każdą operacją, jeśli jest uruchomiony na koncie należącym do grupy Administratorów; w przeciwnym razie dostęp jest odmawiany. Aby poeksperymentować z niepowodzeniem autoryzacji, uruchom klienta na koncie, które nie jest częścią grupy Administratorzy. Naciśnij ENTER w oknie konsoli, aby zamknąć klienta.
Usługa może być powiadamiana o błędach autoryzacji przez zaimplementowanie elementu IErrorHandler. Aby uzyskać informacje na temat implementowania programu, zobacz IErrorHandler.
Aby skonfigurować, skompilować i uruchomić przykładowy program
Upewnij się, że wykonano procedurę instalacji One-Time dla przykładów programu Windows Communication Foundation.
Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w Kompilowanie przykładów Windows Communication Foundation.
Aby uruchomić przykład w konfiguracji pojedynczej lub między komputerami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.