Share via


XML Snippet: Use Username and Password Filters in a BDC Model

Applies to: SharePoint Server 2010

The following is an example of a username and password filter in a BDC model.

Example

The username and password filter requires the configuration of the Secure Store properties as shown.

<LobSystemInstance Name="WCFLobSystemInstance-UserNamePasswordFilter">
  <Properties>
    <!-- SecondarySsoApplicationId is required for UserName and Password Filters-->
    <Property Name="SecondarySsoApplicationId" Type="System.String">SSO</Property>
    <Property Name="SsoApplicationId" Type="System.String">SSO</Property>
    <Property Name="SsoProviderImplementation" Type="System.String">Microsoft.Office.SecureStoreService.Server.SecureStoreProvider, Microsoft.Office.SecureStoreService, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Property>
    <Property Name="WcfAuthenticationMode" Type="System.String">Credentials</Property>
    <Property Name="WcfEndpointAddress" Type="System.String">http://server:port#/Service.svc</Property>
  </Properties>
</LobSystemInstance>

The following is the definition of a username and password filter.

<Method IsStatic="false" LobName="GenericMethod" Name="Default" DefaultDisplayName="FinderGenericMethod">
  <AccessControlList>
    <AccessControlEntry Principal="REDMOND\Domain Users">
      <Right BdcRight="Edit" />
      <Right BdcRight="Execute" />
      <Right BdcRight="SetPermissions" />
      <Right BdcRight="SelectableInClients" />
    </AccessControlEntry>
  </AccessControlList>
  <FilterDescriptors>
    <FilterDescriptor Type="Username" Name="UserNameFilter">
      <Properties>
        <Property Name="CaseSensitive" Type="System.Boolean">false</Property>
        <Property Name="IsDefault" Type="System.Boolean">false</Property>
        <Property Name="UsedForDisambiguation" Type="System.Boolean">false</Property>
      </Properties>
    </FilterDescriptor>   
    <FilterDescriptor Type="Password" Name="PasswordFilter">
      <Properties>
        <Property Name="CaseSensitive" Type="System.Boolean">false</Property>
        <Property Name="IsDefault" Type="System.Boolean">false</Property>
        <Property Name="UsedForDisambiguation" Type="System.Boolean">false</Property>
      </Properties>
    </FilterDescriptor>
  </FilterDescriptors>
  <Parameters>
    <Parameter Direction="In" Name="id">
      <TypeDescriptor TypeName="System.Int32" Name="id" />
    </Parameter>
    <Parameter Direction="In" Name="parent">
      <TypeDescriptor TypeName="BCSWebServiceProxy.RootComplexClass, Sample-LobSystemUserNamePasswordFilter" Name="parent">
        <TypeDescriptors>
          <TypeDescriptor TypeName="System.Boolean" Name="Gender" />
          <TypeDescriptor TypeName="System.Int32" Name="Integer" />
          <TypeDescriptor TypeName="System.String" AssociatedFilter="UserNameFilter" Name="Name">
            <DefaultValues>
              <DefaultValue MethodInstanceName="FinderGenericMethod" Type="System.String">test1</DefaultValue>
            </DefaultValues>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
    <Parameter Direction="In" Name="son">
      <TypeDescriptor TypeName="BCSWebServiceProxy.BrotherClass, Sample-LobSystemUserNamePasswordFilter" Name="son">
        <TypeDescriptors>
          <TypeDescriptor TypeName="System.DateTime" Name="Date">
            <Interpretation>
              <NormalizeDateTime LobDateTimeMode="UTC" />
            </Interpretation>
          </TypeDescriptor>
          <TypeDescriptor TypeName="BCSWebServiceProxy.ThirdClass, Sample-LobSystemUserNamePasswordFilter" Name="Third">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.DateTime" Name="Date">
                <Interpretation>
                  <NormalizeDateTime LobDateTimeMode="UTC" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" AssociatedFilter="Filter" Name="Integer" />
            </TypeDescriptors>
          </TypeDescriptor>
          <TypeDescriptor TypeName="System.Boolean" Name="Gender" />
          <TypeDescriptor TypeName="System.Int32" Name="Integer" />
          <TypeDescriptor TypeName="System.String" AssociatedFilter="PasswordFilter" Name="Name">
            <DefaultValues>
              <DefaultValue MethodInstanceName="FinderGenericMethod" Type="System.String">test2</DefaultValue>
            </DefaultValues>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
    <Parameter Direction="In" Name="daughter">
      <TypeDescriptor TypeName="BCSWebServiceProxy.SisterClass, Sample-LobSystemUserNamePasswordFilter" Name="daughter">
        <TypeDescriptors>
          <TypeDescriptor TypeName="System.DateTime" Name="Date">
            <Interpretation>
              <NormalizeDateTime LobDateTimeMode="UTC" />
            </Interpretation>
          </TypeDescriptor>
          <TypeDescriptor TypeName="System.String" Name="Text" />
          <TypeDescriptor TypeName="BCSWebServiceProxy.ThirdClass, Sample-LobSystemUserNamePasswordFilter" Name="Third">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.DateTime" Name="Date">
                <Interpretation>
                  <NormalizeDateTime LobDateTimeMode="UTC" />
                </Interpretation>
              </TypeDescriptor>
              <TypeDescriptor TypeName="System.Int32" Name="Integer" />
            </TypeDescriptors>
          </TypeDescriptor>
          <TypeDescriptor TypeName="System.Boolean" Name="Gender" />
          <TypeDescriptor TypeName="System.Int32" Name="Integer" />
          <TypeDescriptor TypeName="System.String" Name="Name">
            <DefaultValues>
              <DefaultValue MethodInstanceName="FinderGenericMethod" Type="System.String">teest</DefaultValue>
            </DefaultValues>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
    <Parameter Direction="Return" Name="GenericMethod">
      <TypeDescriptor TypeName="BCSWebServiceProxy.RootComplexClass[], Sample-LobSystemUserNamePasswordFilter" IsCollection="true" Name="GenericMethod">
        <TypeDescriptors>
          <TypeDescriptor TypeName="BCSWebServiceProxy.RootComplexClass, Sample-LobSystemUserNamePasswordFilter" Name="GenericMethodElement">
            <TypeDescriptors>
              <TypeDescriptor TypeName="System.Boolean" Name="Gender" />
              <TypeDescriptor TypeName="System.Int32" ReadOnly="true" IdentifierName="Integer" Name="Integer" />
              <TypeDescriptor TypeName="System.String" ReadOnly="true" IdentifierName="Name" Name="Name" />
            </TypeDescriptors>
          </TypeDescriptor>
        </TypeDescriptors>
      </TypeDescriptor>
    </Parameter>
  </Parameters>
  <MethodInstances>
    <MethodInstance Type="Finder" ReturnParameterName="GenericMethod" Default="true" Name="FinderGenericMethod">
      <Properties>
        <Property Name="RootFinder" Type="System.String"></Property>
        <Property Name="UseClientCachingForSearch" Type="System.String"></Property>
      </Properties>
      <AccessControlList>
        <AccessControlEntry Principal="REDMOND\Domain Users">
          <Right BdcRight="Edit" />
          <Right BdcRight="Execute" />
          <Right BdcRight="SetPermissions" />
          <Right BdcRight="SelectableInClients" />
        </AccessControlEntry>
      </AccessControlList>
    </MethodInstance>
  </MethodInstances>
</Method>