Article ID: 969419 - Last Review: March 31, 2009 - Revision: 1.0

PPID information and generation examples

On This Page

Expand all | Collapse all

INTRODUCTION

The Private Personal Identifier (PPID) claim provides a site-specific identifier for both managed cards and self-issued cards. The PPID is a unique identifier that is generated from information about the recipient and from information in the card that is being used. When you use the same card at a different relying party, a different PPID is generated.

This article provides examples of how CardSpace generates the PPID value for self-issued cards, the Signing Key value for self-issued cards, and the Client Pseudonym value that identity providers can use to generate the PPID value for managed cards. A concise description of the algorithm can also be found in Section 8.6.1 of the Identity Selector Interoperability Profile V1.5 document. To view this document, visit the following Microsoft Web site:
http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/Identity_Selector_Interoperability_Profile_V1.5.pdf (http://download.microsoft.com/download/1/1/a/11ac6505-e4c0-4e05-987c-6f1d31855cd2/identity_selector_interoperability_profile_v1.5.pdf)

MORE INFORMATION

PPID for self-issued information cards

The PPID value is derived from the following two computed intermediate results:
  • RP_PPID_Seed (recipient identifier for PPID)
  • CardId_Hash (card identifier hash)

Computing the RP_PPID_Seed value

There are a few different ways that the RP_PPID_Seed is generated, depending on the answers to the following questions:
  • Is the connection backed by an SSL certificate?
  • Does the SSL certificate have the Organization (O) attribute?
  • Does the SSL certificate have the Common Name (CN) attribute?
Non-SSL connection (HTTP)
If the request is not over a Secure Sockets Layer (SSL) connection (that is, if the request is over HTTP), the RP_PPID_Seed value is the SHA256 hash of the Unicode lowercase host name.

For example, the request may come from the following URL:
http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx (http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx)
In this case, the host name is the following:
relyingparty.federatedidentity.net
When the host name is encoded into a byte array, the host name is the following:
Collapse this tableExpand this table
[0] 114[17] 0[34] 114[51] 0
[1] 0[18] 114[35] 0[52] 116
[2] 101[19] 0[36] 97[53] 0
[3] 0[20] 116[37] 0[54] 105
[4] 108[21] 0[38] 116[55] 0
[5] 0[22] 121[39] 0[56] 116
[6] 121[23] 0[40] 101[57] 0
[7] 0[24] 46[41] 0[58] 121
[8] 105[25] 0[42] 100[59] 0
[9] 0[26] 102[43] 0[60] 46
[10] 110[27] 0[44] 105[61] 0
[11] 0[28] 101[45] 0[62] 110
[12] 103[29] 0[46] 100[63] 0
[13] 0[30] 100[47] 0[64] 101
[14] 112[31] 0[48] 101[65] 0
[15] 0[32] 101[49] 0[66] 116
[16] 97[33] 0[50] 110[67] 0
The base 64 computed RP_PPID_Seed value (using SHA256) is the following:
QwgpRkiNa+KNxOuavZVUpcP0qqWqJsv0Tvrut3GHQkI= (base 64)
Collapse this tableExpand this table
[0] 67[8] 141[16] 195[24] 78
[1] 8[9] 196[17] 244[25] 250
[2] 41[10] 235[18] 170[26] 238
[3] 70[11] 154[19] 165[27] 183
[4] 72[12] 189[20] 170[28] 113
[5] 141[13] 149[21] 38[29] 135
[6] 107[14] 84[22] 203[30] 66
[7] 226[15] 165[23] 244[31] 66
The SSL certificate organization is specified
If the SSL certificate has a specified Organization (O), the RP_PPID_Seed value is the SHA256 hash of the following formatted string:
|O="{___}"|L="{___}"|S="{___}"|C="{___}"|
The attributes come from the certificate. For example, the certificate may contain the following attributes:
  • O = Microsoft
  • L = Redmond
  • S = Washington
  • C = US
In this case, the formatted string is the following:
|O="Microsoft"|L="Redmond"|S="Washington"|C="US"|
The computed RP_PPID_Seed (using SHA256) value is the following:
uVb7rHS3H+JrwtTdh32g0I89ldzy/hED93BpSvPpz4w= (base 64)
Collapse this tableExpand this table
[0] 185[8] 107[16] 143[24] 247
[1] 86[9] 194[17] 61[25] 112
[2] 251[10] 212[18] 149[26] 105
[3] 172[11] 221[19] 220[27] 74
[4] 116[12] 135[20] 242[28] 243
[5] 183[13] 125[21] 254[29] 233
[6] 31[14] 160[22] 17[30] 207
[7] 226[15] 208[23] 3[31] 140
If certain attributes are missing, you must still include the empty attributes in the formatted string. For example, if the certificate only contains the "O = Microsoft" attribute, the formatted string is the following:
|O="Microsoft"|L=""|S=""|C=""|
The computed RP_PPID_Seed value (using SHA256) is the following:
TSiUPtfHYOymhbnFTqM05pFrxkRVzBdW4+sqwB5Kgbg= (base 64)
Collapse this tableExpand this table
[0] 77[8] 166[16] 145[24] 227
[1] 40[9] 133[17] 107[25] 235
[2] 148[10] 185[18] 198[26] 42
[3] 62[11] 197[19] 68[27] 192
[4] 215[12] 78[20] 85[28] 30
[5] 199[13] 163[21] 204[29] 74
[6] 96[14] 52[22] 23[30] 129
[7] 236[15] 230[23] 86[31] 184
The SSL certificate organization is not specified but common name is specified
If the SSL certificate does not have a specified Organization (O), but the SSL certificate has a specified common name (CN), the RP_PPID_Seed value is the SHA256 hash of the following formatted string:
|CN="{___}"|
In this formatted string, "{___}" is replaced by the value of the CN. For example, if the SSL certificate is issued to relyingparty.federatedidentity.net, and the certificate does not specify the Organization (O) attribute, the formatted string is the following:
|CN="relyingparty.federatedidentity.net"|
The computed RP_PPID_Seed value (using SHA256) is:
A2Qy5dkoyNT8bhLbO6+k3pW0vg6VEaUfm8ZdBZnRgMg= (base 64)
Collapse this tableExpand this table
[0] 3[8] 252[16] 149[24] 155
[1] 100[9] 110[17] 180[25] 198
[2] 50[10] 18[18] 190[26] 93
[3] 229[11] 219[19] 14[27] 5
[4] 217[12] 59[20] 149[28] 153
[5] 40[13] 175[21] 17[29] 209
[6] 200[14] 164[22] 165[30] 128
[7] 212[15] 222[23] 31[31] 200
The SSL certificate organization and common name are not specified
If the SSL certificate does not have a specified Organization (O) and does not have a specified Common Name (CN), the RP_PPID_Seed value is the SHA256 hash of the certificate's public key.

Computing the CardId_Hash value

The CardId value is a randomly generated unique Uniform Resource Identifier (URI). The CardID value is used to uniquely identify a card. PPID needs the SHA256 hash of the CardId value.

For example, you may use the FedId Self-Issued card. The FedId Self-Issued card resembles the following:
Collapse this imageExpand this image
FedId Self-Issued
When you use the FedId Self-Issued card from the OSIS interop test, the CardId value is the following:
urn:uuid:dde7d341-cb77-4e2f-afcd-d4fddc3ba6fb
When the CardId value is encoded into a byte array, the CardId value is the following:
Collapse this tableExpand this table
[0] 117[23] 0[46] 52[69] 0
[1] 0[24] 55[47] 0[70] 102
[2] 114[25] 0[48] 101[71] 0
[3] 0[26] 100[49] 0[72] 100
[4] 110[27] 0[50] 50[73] 0
[5] 0[28] 51[51] 0[74] 100
[6] 58[29] 0[52] 102[75] 0
[7] 0[30] 52[53] 0[76] 99
[8] 117[31] 0[54] 45[77] 0
[9] 0[32] 49[55] 0[78] 51
[10] 117[33] 0[56] 97[79] 0
[11] 0[34] 45[57] 0[80] 98
[12] 105[35] 0[58] 102[81] 0
[13] 0[36] 99[59] 0[82] 97
[14] 100[37] 0[60] 99[83] 0
[15] 0[38] 98[61] 0[84] 54
[16] 58[39] 0[62] 100[85] 0
[17] 0[40] 55[63] 0[86] 102
[18] 100[41] 0[64] 45[87] 0
[19] 0[42] 55[65] 0[88] 98
[20] 100[43] 0[66] 100[89] 0
[21] 0[44] 45[67] 0
[22] 101[45] 0[68] 52
The computed CardId_Hash value (using SHA256) is the following:
+8xmlVK/Qe9jHz0paZuKUwIwPBUan1UGfh1KSk9cFc8=(base 64)
Collapse this tableExpand this table
[0] 251[8] 99[16] 2[24] 126
[1] 204[9] 31[17] 48[25] 29
[2] 102[10] 61[18] 60[26] 74
[3] 149[11] 41[19] 21[27] 74
[4] 82[12] 105[20] 26[28] 79
[5] 191[13] 155[21] 159[29] 92
[6] 65[14] 138[22] 85[30] 21
[7] 239[15] 83[23] 6[31] 207

Generating the PPID

To generate the PPID, concatenate the two byte arrays (that is, the RP_PPID_Seed byte array followed by the CardId_Hash byte array) to form a 64-byte array.

For example, the request may come from the following URL:
http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx (http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx)
If you are using the FedId Self-Issued card from the OSIS "Selector Constructs Site-Specific Identifiers for Self-Issued Cards" interop test, concatenating the value of the RP_PPID_Seed byte array and the value of the CardId_Hash byte array results in the following byte array:
uVb7rHS3H+JrwtTdh32g0I89ldzy/hED93BpSvPpz4z7zGaVUr9B72MfPSlpm4pTAjA8FRqfVQZ+HUpKT1wVzw= (base 64)
Collapse this tableExpand this table
[0] 185[16] 143[32] 251[48] 2
[1] 86[17] 61[33] 204[49] 48
[2] 251[18] 149[34] 102[50] 60
[3] 172[19] 220[35] 149[51] 21
[4] 116[20] 242[36] 82[52] 26
[5] 183[21] 254[37] 191[53] 159
[6] 31[22] 17[38] 65[54] 85
[7] 226[23] 3[39] 239[55] 6
[8] 107[24] 247[40] 99[56] 126
[9] 194[25] 112[41] 31[57] 29
[10] 212[26] 105[42] 61[58] 74
[11] 221[27] 74[43] 41[59] 74
[12] 135[28] 243[44] 105[60] 79
[13] 125[29] 233[45] 155[61] 92
[14] 160[30] 207[46] 138[62] 21
[15] 208[31] 140[47] 83[63] 207
The PPID is the SHA256 hash of the concatenated byte array. In this example, the generated PPID (using SHA256) is the following:
WvA5Huo0c265eAuMu0rW6XF48ghQ+cZ5Osyb+vFhMg8= (base 64)
Collapse this tableExpand this table
[0] 90[8] 185[16] 113[24] 58
[1] 240[9] 120[17] 120[25] 204
[2] 57[10] 11[18] 242[26] 155
[3] 30[11] 140[19] 8[27] 250
[4] 234[12] 187[20] 80[28] 241
[5] 52[13] 74[21] 249[29] 97
[6] 115[14] 214[22] 198[30] 50
[7] 110[15] 233[23] 121[31] 15

Computing the friendly PPID

The friendly PPID is a ten-character alphanumeric representation of the PPID. The friendly PPID is more readable to the user. The friendly PPID is based on the following character map:
QL23456789ABCDEFGHJKMNPRSTUVWXYZ
To compute the friendly PPID, follow these steps:
  1. Compute the PPID hash by using SHA1.
    Collapse this imageExpand this image
    FedId Self Issued
    For example, you may use the PPID that is generated for the FedId self-issued card from the OSIS "Selector Constructs Site-Specific Identifiers for Self-Issued Cards" interop test at the following URL:
    http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx (http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx)
    In this case, the PPID is the following:
    WvA5Huo0c265eAuMu0rW6XF48ghQ+cZ5Osyb+vFhMg8= (base 64)
    The computed PPID hash is the following:
    Collapse this tableExpand this table
    [00] 202[05] 9[10] 40[15] 129
    [01] 104[06] 121[11] 65[16] 219
    [02] 14[07] 75[12] 47[17] 251
    [03] 141[08] 54[13] 153[18] 149
    [04] 102[09] 69[14] 12[19] 117
  2. Modify the first 10 bytes by the length of the friendly PPID character map length (32).

    In this example, the computed PPID hash after truncation and modification by 32 is the following:
    Collapse this tableExpand this table
    [0] 10[3] 13[6] 25[9] 5
    [1] 8[4] 6[7] 11
    [2] 14[5] 9[8] 22
  3. To determine the friendly PPID, find the corresponding character in the character map in step 2. This example uses the following table:
    Collapse this tableExpand this table
    [0] 10 => A[4] 6 => 6[8] 22 => P
    [1] 8 => 8[5] 9 => 9[9] 5 => 5
    [2] 14 => E[6] 25 => T
    [3] 13 => D[7] 11 => B
  4. It is common practice to insert a hyphen delimiter after the third character and after the seventh character. The following example uses the friendly PPID that is generated in step 3:
    A8E-D69T-BP5

Signing key for self-issued information cards

The signing key is used to sign the self-issued tokens that are generated.

The signing key is based on the following information:
  • The master key of the self-issued card
  • The RP_Identifier value

Master Key

The master key is dynamically generated when a self-issued card is first created. The master key remains the same when the card is backed up or roamed.

Computing RP_Identifier

The recipient identifier for PPID, RP_PPID_Seed, is generated in a similar way as the recipient identifier for organization (RP_Identifier). However, the computation for the RP_Identifier value distinguishes between extended validation (EV) certificates and regular SSL certificates.
Non-SSL connection (HTTP)
The RP_Identifier value is the same as the RP_PPID_Seed value.
The SSL certificate organization and the common name are not specified
The RP_Identifier value is the same as RP_PPID_Seed value.
The SSL certificate organization is not specified, but the common name is specified
The RP_Identifier value is the same as RP_PPID_Seed value.
The SSL certificate organization is specified
If the certificate is an EV certificate, the RP_Identifier value is the same as RP_PPID_Seed value.

If the certificate is a regular SSL certificate, the RP_Identifier value is the SHA256 hash of the following formatted string, where the attributes come from the certificate:
|Non-EV|O="{___}"|L="{___}"|S="{___}"|C="{___}"|
For example, the certificate may contain the following attributes:
  • O = Microsoft
  • L = Redmond
  • S = Washington
  • C = US
In this case, the formatted string is the following:
Collapse this tableExpand this table
[0] 215[8] 103[16] 126[24] 121
[1] 76[9] 104[17] 133[25] 20
[2] 87[10] 139[18] 219[26] 108
[3] 135[11] 5[19] 149[27] 31
[4] 151[12] 241[20] 79[28] 40
[5] 144[13] 30[21] 59[29] 33
[6] 74[14] 115[22] 93[30] 235
[7] 229[15] 131[23] 191[31] 170
If some attributes are missing, you must include the empty attributes in the formatted string.

For example, if the certificate only contains the "O = Microsoft" attribute, the formatted string is the following:
|Non-EV|O="Microsoft"|L=""|S=""|C=""|
In this case, the computed RP_Identifier value (using SHA256) is the following:
Idca8yDKKAN0RpzxTLeEjr2MZ4DPXllJk/7EQpq8dPw= (base 64)
Collapse this tableExpand this table
[0] 33[8] 116[16] 189[24] 147
[1] 215[9] 70[17] 140[25] 254
[2] 26[10] 156[18] 103[26] 196
[3] 243[11] 241[19] 128[27] 66
[4] 32[12] 76[20] 207[28] 154
[5] 202[13] 183[21] 94[29] 188
[6] 40[14] 132[22] 89[30] 116
[7] 3[15] 142[23] 73[31] 252

Generating the signing key

To generate the signing key, follow these steps:
  1. Determine the master key and the RP_Identifier value.
    Collapse this imageExpand this image
    FedId Self-Issued
    For example, the request may come from the following URL:
    http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx (http://relyingparty.federatedidentity.net/AnyIssuerRelyingParty/Login.aspx)
    If the card that you are using is the FedId self-issued card from the OSIS "Selector Constructs Site-Specific Identifiers for Self-Issued Cards" interop test, the master key is extracted from the self-issued card. The RP_Identifier is generated from the recipient’s certificate.
    • The following is the master key:
      MOn5FKyeKDZEbqI2vD/sQiszPPYw0jlyPp0+V+P+CkE= (base 64)
      Collapse this tableExpand this table
      [0] 48[11] 54[22] 57
      [1] 233[12] 188[23] 114
      [2] 249[13] 63[24] 62
      [3] 20[14] 236[25] 157
      [4] 172[15] 66[26] 62
      [5] 158[16] 43[27] 87
      [6] 40[17] 51[28] 227
      [7] 54[18] 60[29] 254
      [8] 68[19] 246[30] 10
      [9] 110[20] 48[31] 65
      [10] 162[21] 210
    • The following is the RP_Identifier value:
      10xXh5eQSuVnaIsF8R5zg36F25VPO12/eRRsHygh66o= (base 64)
  2. Generate an RSA key pair by using the X9.31 algorithm. Use the master key as the key and the RP_Identifier value as entropy.

    In this example, the following RSA key is generated:
    BwIAAACkAABSU0EyAAgAAAEAAQDfeDUTQMX5CLhhl6D3p7YSrULr9ouzyrgekxNlEP0
    ADWvm/i9v7Yldlez3GPQ+WL4fUClNKApQm1idFmLDMB/R2HFyBaPSkzfEp2q+ZevEA
    ojAqXMd2lroaMBc3RL9bCA9LRC8Z5Ps+GgNHsDte2dXckdKmrD8edcolZ2gNF5plAS3
    GJ5Wj8snKn2m6lxnMmGAILftCHs5kbzWyeI/VGLXlWEmtnTx/3NZGXHUsFC2fU2mAA
    wrtneqDvnwi6f3x3szCyk5yNgN13rN3NOMrXYnnpBBWr8yfsDPf9Ru4qTn+FSV25P1Ov
    Srs6aB30AAv6uNX/puiF9E7dy2mN9H7L+unSOBZzNMcNzA7cUc+x+9tqGf6lMVaap2N
    Gzo1l/drEaPwOrAcPhuTaLrTD4mn+u1hbeM+wrpr9kii/ie5dCkJKJTzMRdT3rlqZGkjPcg1
    8+Orrck+pHctc1kpTADJp4PSCtOCy5Bj04tWwDj+MV1byLiJcT5CkqOfzWN0G8JhOSru
    /twzO7ipKekrSrikhX093+rmKFDDEZCJVpaiA3TrpIhF6JrKB7Jp7Tt0MS9dLnR1k5gyOAd
    9N+Bc3vN17HdI/rwYKrrAIITFA+pjmxDh9XYYT+PkSVZ6r/Kd+EEyr1Qt8SNCk485OB9
    E4gufgCtuOIu/MoYniBokaGEB3DEw72z/XVPEkAzu2N1zTm+sOS0Q/qHUD1+GW7mM
    Nrn0uyeQG0SLjR5kQeGPYprDdcyGbNaxoC8bAg84XlMBI9+dcdzmP4RzlEBsUb+Tluiw
    mNYY4tD00PK40gFdMqtGNBdIbY6pPpA3yXJwZ20it0+qAbua+F1cXmUES1zAX6ZJNd
    J95ltDyvPv2ruhwVS0ZYmFk6p++Yqy6qAKNXbRQOgesHe2HWOv5nV/Tzx74sBWLLse
    liQPhhq/BkTjpWoJriHjthbxa9Y20ET0sRsyrdU1iNojPAbnuHVrl0pHKiLsfX5o9yKLoj/rPy
    CwSfhFGsTY+AEXci5DAPmPLZtSNjZ9EKgaEJz2IYYI1tYi4Aib6UydXO98c8m2udXzy5M
    G9mb+z7HMMdWxSQ1EioL1OuBR59xRxmLaRFWU+8E1JwIIr0wXkXSGn0UI+m8Qww
    +E9PB7dGZsjZ00inNoioILTIjhz1uUnekw93raV2eL+SeWG03/EYJQl0H7OmRzLL/GF/p
    PeGMRHeOD/XIjfs+9U1gq+CqFXAX5j5gkKCboH4b6WgF5g9gPCbDZM9L9zZ+qjHH2U
    xTHMty2HSX8VKSped78haizgBeul3bpVN4KNeivk+IYeek3+YxpWPb1uoSkoTFvR7lVm
    GL5QnZ5YhCzBnJVf1qnSfXmVxXS98SYdoaV4CeveTRdw+F4Pljebe6QlSbsGnMBMj9uih
    CipG1G2LwowkREi+XCb2C0uvIkcrH8zHaGcYQr0ofyqDZJ6PQ4c97ovhydCfy8C1pyMtJL
    LsXIcSwZcFrGC6TvbPCVK+EqcboBL9aL8G5o9hP9NGeH2XuhctsdDKelilt5eeoYvXIbQU
    = (base 64)

Client pseudonym for managed information cards

The client pseudonym is extra information that is passed to the IPSTS when one of the supported claims in the card is the PPID.

The client pseudonym is computed based on the following information:
  • The master key value of the managed card
  • The recipient identifier for PPID (RP_PPID_Seed)
  • The hash salt value of the managed card

The master key and hash salt of the managed card

Both of these data values are dynamically generated when a managed card is first installed. They remain the same when the card is backed up or roamed.

RP_PPID_Seed for client pseudonym calculation

The RP_PPID value is calculated for managed cards in the same manner as for self-issued cards. For an example of this computation, see the "Computing RP_PPID_Seed" section.

Generating the client pseudonym

To generate the client pseudonym, concatenate the three byte arrays. The master key is followed by the RP_PPID_Seed value. The RP_PPID_Seed value is followed by the hash salt.
Collapse this imageExpand this image
Echo Non-Auditing
For example, you may submit the token to the following URL:
https://relyingparty.federatedidentity.net/CardSelectorRP/login.aspx (https://relyingparty.federatedidentity.net/CardSelectorRP/login.aspx)
If you use the Echo Non-Auditing card from the OSIS "Selector Support for Non-Auditing Cards" interop test, the following data is generated:
  • Master key:
    iXAQ7TSku+L21Af2QNvRhTbiaSTLu6md4u3neRhlONc= (base 64)
  • RP_Identifier value:
    uVb7rHS3H+JrwtTdh32g0I89ldzy/hED93BpSvPpz4w= (base 64)
  • Hash salt:
    XulwIob4P6fOv952Dby31Q=(base 64)
Concatenating the three arrays generates the following result:
iXAQ7TSku+L21Af2QNvRhTbiaSTLu6md4u3neRhlONe5VvusdLcf4mvC1N2HfaDQjz2V3PL+EQP3cGlK8+nPjF7pcCKG+D+nzr/edg28t9U= (base64)
Collapse this tableExpand this table
[0] 137[20] 203[40] 107[60] 243
[1] 112[21] 187[41] 194[61] 233
[2] 16[22] 169[42] 212[62] 207
[3] 237[23] 157[43] 221[63] 140
[4] 52[24] 226[44] 135[64] 94
[5] 164[25] 237[45] 125[65] 233
[6] 187[26] 231[46] 160[66] 112
[7] 226[27] 121[47] 208[67] 34
[8] 246[28] 24[48] 143[68] 134
[9] 212[29] 101[49] 61[69] 248
[10] 7[30] 56[50] 149[70] 63
[11] 246[31] 215[51] 220[71] 167
[12] 64[32] 185[52] 242[72] 206
[13] 219[33] 86[53] 254[73] 191
[14] 209[34] 251[54] 17[74] 222
[15] 133[35] 172[55] 3[75] 118
[16] 54[36] 116[56] 247[76] 13
[17] 226[37] 183[57] 112[77] 188
[18] 105[38] 31[58] 105[78] 183
[19] 36[39] 226[59] 74[79] 213
The client pseudonym is the SHA256 hash of the concatenated array.

In this example, the generated client pseudonym (using SHA256) is the following:
dOcmDC6vbrrbIC/lwCCxpI6RiVefHHukiAqpkD7jptA= (base 64)
Collapse this tableExpand this table
[0] 116[8] 219[16] 142[24] 136
[1] 231[9] 32[17] 145[25] 10
[2] 38[10] 47[18] 137[26] 169
[3] 12[11] 229[19] 87[27] 144
[4] 46[12] 192[20] 159[28] 62
[5] 175[13] 32[21] 28[29] 227
[6] 110[14] 177[22] 123[30] 166
[7] 186[15] 164[23] 164[31] 208
For more information about the "Selector Constructs Site-Specific Identifiers for Self-Issued Cards" OSIS interop test, visit the following Web site:
http://osis.idcommons.net/wiki/I5:FeatureTest-Selector_Constructs_Site-Specific_Identifiers_for_Self-Issued_Cards (http://osis.idcommons.net/wiki/I5:FeatureTest-Selector_Constructs_Site-Specific_Identifiers_for_Self-Issued_Cards)
For more information about the "Selector Support for Non-Auditing Cards" interop test, visit the following Web site:
http://osis.idcommons.net/wiki/I5:FeatureTest-Selector_Support_for_Non-Auditing_Cards (http://osis.idcommons.net/wiki/I5:FeatureTest-Selector_Support_for_Non-Auditing_Cards)
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

APPLIES TO
  • Microsoft .NET Framework 3.5 Service Pack 1
  • Windows Communication Foundation
Keywords: 
kbexpertiseinter kbsurveynew kbinfo KB969419