Aracılığıyla paylaş


Hizmet İşlemlerine Erişimi Yetkilendirme

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 MessageclientCredentialType 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 IErrorHandlerhakkında bilgi için bkz. Hata İşleme ve Raporlama Üzerinde Denetimi Genişletme.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  2. Çö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.

  3. Ö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.