Aracılığıyla paylaş


Nasıl yapılır: ASP.NET Rol Sağlayıcısını Bir Hizmetle Kullanma

ASP.NET rol sağlayıcısı (ASP.NET üyelik sağlayıcısıyla birlikte), ASP.NET geliştiricilerin kullanıcıların bir siteyle hesap oluşturmasına ve yetkilendirme amacıyla rollere atanmasına olanak tanıyan Web siteleri oluşturmasına olanak tanıyan bir özelliktir. Bu özellik sayesinde, herhangi bir kullanıcı siteyle bir hesap oluşturabilir ve siteye ve hizmetlerine özel erişim için oturum açabilir. Bu, kullanıcıların bir Windows etki alanında hesap sahibi olmasını gerektiren Windows güvenliğinin aksinedir. Bunun yerine, kimlik bilgilerini sağlayan tüm kullanıcılar (kullanıcı adı/parola bileşimi) siteyi ve hizmetlerini kullanabilir.

Örnek uygulama için bkz . Üyelik ve Rol Sağlayıcısı. ASP.NET üyelik sağlayıcısı özelliği hakkında daha fazla bilgi için bkz . Nasıl yapılır: ASP.NET Üyelik Sağlayıcısı'nı kullanma.

Rol sağlayıcısı özelliği, kullanıcı bilgilerini depolamak için bir SQL Server veritabanı kullanır. Windows Communication Foundation (WCF) geliştiricileri bu özelliklerden güvenlik amacıyla yararlanabilir. Bir WCF uygulamasıyla tümleştirildiğinde, kullanıcıların WCF istemci uygulamasına bir kullanıcı adı/parola bileşimi sağlaması gerekir. WCF'nin veritabanını kullanmasını sağlamak için sınıfının bir örneğini ServiceAuthorizationBehavior oluşturmanız, özelliğini olarak UseAspNetRolesayarlamanız PrincipalPermissionMode ve örneği hizmeti barındıran davranış koleksiyonuna ServiceHost eklemeniz gerekir.

Rol sağlayıcısını yapılandırma

  1. Web.config dosyasındaki öğesinin <system.web> altına bir <>roleManageröğe ekleyin ve özniteliğini enabled olarak trueayarlayın.

  2. özniteliğini defaultProvider olarak SqlRoleProviderayarlayın.

  3. öğesinin alt öğesi <roleManager> olarak bir <providers> öğe ekleyin.

  4. öğesinin <providers> alt öğesi olarak, aşağıdaki öznitelikleri uygun değerlere ayarlanmış bir <>addöğe ekleyin: name, type, connectionStringNameve , , applicationNameaşağıdaki örnekte gösterildiği gibi.

    <!-- Configure the Sql Role Provider. -->  
    <roleManager enabled ="true"
     defaultProvider ="SqlRoleProvider" >  
       <providers>  
         <add name ="SqlRoleProvider"
           type="System.Web.Security.SqlRoleProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipAndRoleProviderSample"/>  
       </providers>  
    </roleManager>  
    

Hizmeti rol sağlayıcısını kullanacak şekilde yapılandırma

  1. Web.config dosyasına bir <system.serviceModel> öğesi ekleyin.

  2. öğesine bir <behaviors> öğesi <system.ServiceModel> ekleyin.

  3. öğesine serviceBehaviors <><>behaviorsekleyin.

  4. Bir <davranış> öğesi ekleyin ve özniteliğini name uygun bir değere ayarlayın.

  5. öğesine serviceAuthorization <><>behaviorekleyin.

  6. özniteliğini principalPermissionMode olarak UseAspNetRolesayarlayın.

  7. özniteliğini roleProviderName olarak SqlRoleProviderayarlayın. Aşağıdaki örnekte yapılandırmanın bir parçası gösterilmektedir.

    <behaviors>  
     <serviceBehaviors>  
      <behavior name="CalculatorServiceBehavior">  
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"  
                             roleProviderName ="SqlRoleProvider" />  
      </behavior>  
     </serviceBehaviors>  
    </behaviors>  
    

Ayrıca bkz.