Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu örnek, hizmet işlemlerine erişimi yetkilendirmek için özniteliğin kullanımını etkinleştirmek için serviceAuthorization'ın PrincipalPermissionAttribute>nasıl kullanılacağını <gösterir. Bu örnek, Başlarken örneğini temel alır. Hizmet ve istemci, wsHttpBinding> kullanılarak <yapılandırılır. Güvenlik mode
>özniteliği< olarak ve Message
clientCredentialType
olarak ayarlanmıştır.Windows
PrincipalPermissionAttribute her hizmet yöntemine uygulanır ve her işleme erişimi kısıtlamak için kullanılır. Her işleme erişmek için çağıranın bir Windows yöneticisi olması gerekir.
Bu örnekte istemci bir konsol uygulamasıdır (.exe) ve hizmet Internet Information Services (IIS) tarafından barındırılır.
Not
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.
Hizmet yapılandırma dosyası, özniteliğini ayarlamak için serviceAuthorization'ı principalPermissionMode
>kullanır:<
<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>
ayarının principalPermissionMode
ayarlanması UseWindowsGroups
, Windows grup adlarına PrincipalPermissionAttribute göre kullanımını etkinleştirir.
PrincipalPermissionAttribute, çağıranın aşağıdaki örnek kodda gösterildiği gibi Windows yöneticiler grubunun bir parçası olmasını gerektirmek için her işleme uygulanır.
[PrincipalPermission(SecurityAction.Demand,
Role = "Builtin\\Administrators")]
public double Add(double n1, double n2)
{
double result = n1 + n2;
return result;
}
Örneği çalıştırdığınızda, işlem istekleri ve yanıtları istemci konsolu penceresinde görüntülenir. İstemci, Yönetici istrators grubunun parçası olan bir hesap altında çalışıyorsa her işlemle başarılı bir şekilde iletişim kurar; aksi takdirde erişim reddedilir. Yetkilendirme hatasıyla deneme yapmak için istemciyi Yönetici istrators grubunun parçası olmayan bir hesap altında çalıştırın. İstemciyi kapatmak için konsol penceresinde ENTER tuşuna basın.
Bir hizmet, bir IErrorHandleruygulanarak yetkilendirme hataları konusunda bilgilendirilebilir. Uygulama IErrorHandler
hakkında bilgi için bkz. Hata İşleme ve Raporlama Üzerinde Denetimi Genişletme.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.
Örneği tek veya bilgisayarlar arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.