Gewusst wie: Verwenden des ASP.NET-MitgliedschaftsanbietersHow to: Use the ASP.NET Membership Provider

Der ASP.NETASP.NET-Mitgliedschaftsanbieter ist eine Funktion für ASP.NETASP.NET-Entwickler zum Erstellen von Websites, mit denen die Benutzer eindeutige Kombinationen aus Benutzername und Kennwort erstellen können.The ASP.NETASP.NET membership provider is a feature that enables ASP.NETASP.NET developers to create Web sites that allow users to create unique user name and password combinations. Jeder Benutzer kann damit ein Konto auf dieser Site erstellen und sich für den exklusiven Zugriff auf diese Site und ihre Dienste anmelden.With this facility, any user can establish an account with the site, and sign in for exclusive access to the site and its services. Dies steht im Gegensatz zur Windows-Sicherheit, bei der die Benutzer über Konten in einer Windows-Domäne verfügen müssen.This is in contrast to Windows security, which requires users to have accounts in a Windows domain. Stattdessen kann jeder Benutzer, der seine Anmeldeinformationen (Kombination aus Benutzername und Kennwort) angibt, die Site und ihre Dienste nutzen.Instead, any user that supplies his or her credentials (the user name/password combination) can use the site and its services.

Eine beispielanwendung finden Sie unter Mitgliedschafts- und Rollenanbieter.For a sample application, see Membership and Role Provider. Informationen zum Verwenden der ASP.NETASP.NET rollenanbieterfunktion, finden Sie unter wie: Verwenden des ASP.NET-Rollenanbieters bei einem Dienst.For information about using the ASP.NETASP.NET role provider feature, see How to: Use the ASP.NET Role Provider with a Service.

Die Mitgliedschaftsfunktion setzt die Verwendung einer SQL Server-Datenbank zum Speichern der Benutzerdaten voraus.The membership feature requires using a SQL Server database to store the user information. Die Funktion schließt auch Methoden zum Anzeigen einer Frage für Benutzer ein, die ihr Kennwort vergessen haben.The feature also includes methods for prompting with a question any users who have forgotten their password.

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Entwickler können diese Funktionen für Sicherheitszwecke nutzen. developers can take advantage of these features for security purposes. Wenn sie in eine WCFWCF-Anwendung integriert sind, müssen die Benutzer der WCFWCF-Clientanwendung eine Kombination aus Benutzername und Kennwort bereitstellen.When integrated into an WCFWCF application, users must supply a user name/password combination to the WCFWCF client application. Übertragung die Daten, die WCFWCF service, verwenden Sie eine Bindung, die Benutzer/Kennwort-Anmeldeinformationen, z. B. unterstützt die WSHttpBinding (in der Konfiguration der <WsHttpBinding >), und legen Sie die Clientanmeldeinformationen Geben Sie auf UserName.To transfer the data to the WCFWCF service, use a binding that supports user name/password credentials, such as the WSHttpBinding (in configuration, the <wsHttpBinding>) and set the client credential type to UserName. Die WCFWCF-Sicherheit des Diensts authentifiziert den Benutzer basierend auf Benutzername und Kennwort und weist die von der ASP.NETASP.NET-Rolle angegebene Rolle zu.On the service, WCFWCF security authenticates the user based on the user name and password, and also assigns the role specified by the ASP.NETASP.NET role.

Hinweis

WCFWCF stellt keine Methoden bereit, um die Datenbank mit Benutzername-Kennwort-Kombinationen oder anderen Benutzerdaten zu füllen. does not provide methods to populate the database with user name/password combinations or other user information.

So konfigurieren Sie den MitgliedschaftsanbieterTo configure the membership provider

  1. In der Datei "Web.config" unter dem <system.web>-Element erstellen eine <membership> Element.In the Web.config file, under the <system.web> element, create a <membership> element.

  2. Erstellen Sie unter dem <membership>-Element ein <providers>-Element.Under the <membership> element, create a <providers> element.

  3. Als untergeordnetes Element der <providers>-Element hinzufügen einer <clear /> Element leert die Auflistung von Anbietern.As a child to the <providers> element, add a <clear /> element to flush the collection of providers.

  4. Unter den <clear /> Element, erstellen eine <add>-Element mit den folgenden Attributen auf die entsprechenden Werte festgelegt: name, type, connectionStringName, applicationName, enablePasswordRetrieval, enablePasswordReset, requiresQuestionAndAnswer , requiresUniqueEmail, und passwordFormat.Under the <clear /> element, create an <add> element with the following attributes set to appropriate values: name, type, connectionStringName, applicationName, enablePasswordRetrieval, enablePasswordReset, requiresQuestionAndAnswer, requiresUniqueEmail, and passwordFormat. Das name-Attribut wird später als Wert in der Konfigurationsdatei verwendet.The name attribute is used later as a value in the configuration file. Im folgenden Beispiel wird das Attribut auf den Wert SqlMembershipProvider festgelegt.The following example sets it to SqlMembershipProvider.

    Im folgenden Beispiel wird der Konfigurationsabschnitt angegeben.The following example shows the configuration section.

    <!-- Configure the Sql Membership Provider -->  
    <membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">  
      <providers>  
        <clear />  
          <add   
            name="SqlMembershipProvider"   
            type="System.Web.Security.SqlMembershipProvider"   
            connectionStringName="SqlConn"  
            applicationName="MembershipAndRoleProviderSample"  
            enablePasswordRetrieval="false"  
            enablePasswordReset="false"  
            requiresQuestionAndAnswer="false"  
            requiresUniqueEmail="true"  
            passwordFormat="Hashed" />  
      </providers>  
    </membership>  
    

So konfigurieren Sie Dienstsicherheit, die eine Kombination aus Benutzername und Kennwort akzeptiertTo configure service security to accept the user name/password combination

  1. In der Konfigurationsdatei unter der <system.serviceModel > Element, Hinzufügen einer <Bindungen > Element.In the configuration file, under the <system.serviceModel> element, add a <bindings> element.

  2. Hinzufügen einer <WsHttpBinding > , die im Abschnitt über Bindungen.Add a <wsHttpBinding> to the bindings section. Weitere Informationen finden Sie unterFor more information aboutErstellen einer WCFWCF binding-Element, finden Sie unter wie: Angeben einer Dienstbindung in einer Konfiguration. creating an WCFWCF binding element, see How to: Specify a Service Binding in Configuration.

  3. Legen Sie das mode-Attribut des <security>-Elements auf Message fest.Set the mode attribute of the <security> element to Message.

  4. Festlegen der clientCredentialType Attribut des der <message>-Element UserName.Set the clientCredentialType attribute of the <message> element to UserName. Dies gibt an, dass ein Benutzername-Kennwort-Paar als Anmeldeinformationen für den Client verwendet wird.This specifies that a user name/password pair will be used as the client's credential.

    Das folgende Beispiel zeigt den Konfigurationscode für die Bindung.The following example shows the configuration code for the binding.

    <system.serviceModel>  
    <bindings>  
      <wsHttpBinding>  
      <!-- Set up a binding that uses UserName as the client credential type -->  
        <binding name="MembershipBinding">  
          <security mode ="Message">  
            <message clientCredentialType ="UserName"/>  
          </security>  
        </binding>  
      </wsHttpBinding>  
    </bindings>  
    </system.serviceModel>  
    

So konfigurieren Sie einen Dienst für die Verwendung des MitgliedschaftsanbietersTo configure a service to use the membership provider

  1. Als untergeordnetes Element der <system.serviceModel> Element, Hinzufügen einer <Verhalten > ElementAs a child to the <system.serviceModel> element, add a <behaviors> element

  2. Hinzufügen einer <ServiceBehaviors > auf der <behaviors> Element.Add a <serviceBehaviors> to the <behaviors> element.

  3. Hinzufügen einer <Verhalten > und legen Sie die name -Attribut auf einen geeigneten Wert.Add a <behavior> and set the name attribute to an appropriate value.

  4. Hinzufügen einer <ServiceCredentials > auf der <behavior> Element.Add a <serviceCredentials> to the <behavior> element.

  5. Hinzufügen einer <UserNameAuthentication > auf die <serviceCredentials> Element.Add a <userNameAuthentication> to the <serviceCredentials> element.

  6. Legen Sie das userNamePasswordValidationMode-Attribut auf MembershipProvider fest.Set the userNamePasswordValidationMode attribute to MembershipProvider.

    Wichtig

    Wenn der userNamePasswordValidationMode-Wert nicht festgelegt ist, verwendet WCFWCF die Windows-Authentifizierung statt des ASP.NETASP.NET-Mitgliedschaftsanbieters.If the userNamePasswordValidationMode value is not set, WCFWCF uses Windows authentication instead of the ASP.NETASP.NET membership provider.

  7. Legen Sie das membershipProviderName-Attribut auf den Namen des Anbieters fest (wird beim Hinzufügen des Anbieters im ersten Verfahren in diesem Thema angegeben).Set the membershipProviderName attribute to the name of the provider (specified when adding the provider in the first procedure in this topic). Im folgenden Beispiel sehen Sie das <serviceCredentials>-Fragment bis zu diesem Punkt:The following example shows the <serviceCredentials> fragment to this point.

    <behaviors>  
       <serviceBehaviors>  
          <behavior name="MyServiceBehavior">  
             <serviceCredentials>  
                <userNameAuthentication   
                userNamePasswordValidationMode="MembershipProvider"  
                membershipProviderName="SqlMembershipProvider" />  
             </serviceCredentials>  
          </behavior>  
       </serviceBehaviors>  
    </behaviors>  
    

BeispielExample

Das folgende Codebeispiel zeigt die Konfiguration für einen Dienst, der die ASP-Mitgliedschaftsfunktion verwendet.The following code shows the configuration for a service that uses the ASP membership feature.

<?xml version="1.0" encoding="utf-8" ?>  
<configuration>  
  <system.serviceModel>  
    <services>  
      <service behaviorConfiguration="MyServiceBehavior" name="Microsoft.Samples.GettingStarted.CalculatorService">  
        <endpoint address="http://microsoft.com/WCFservices/Calculator"  
          binding="wsHttpBinding" bindingConfiguration="MembershipBinding"  
          name="ASPmemberUserName" contract="Microsoft.Samples.GettingStarted.ICalculator" />  
      </service>  
    </services>  
    <behaviors>  
      <serviceBehaviors>  
        <behavior name="MyServiceBehavior">  
          <serviceCredentials>  
            <userNameAuthentication   
              userNamePasswordValidationMode="MembershipProvider"  
              membershipProviderName="SqlMembershipProvider" />  
          </serviceCredentials>  
        </behavior>  
          </serviceBehaviors>  
    </behaviors>  
    <bindings>  
      <wsHttpBinding>  
        <binding name="MembershipBinding">  
          <security mode="Message">  
            <message clientCredentialType="UserName" />  
          </security>  
        </binding>  
      </wsHttpBinding>  
    </bindings>  
  </system.serviceModel>  
</configuration>  

Siehe auchSee Also

Vorgehensweise: Verwenden des ASP.NET-Rollenanbieters mit einem DienstHow to: Use the ASP.NET Role Provider with a Service
Mitgliedschafts- und RollenanbieterMembership and Role Provider