epoc32/include/mw/senidentityprovider.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 1 666f914201fb
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
/*
williamr@2
     2
* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). 
williamr@2
     3
* All rights reserved.
williamr@2
     4
* This component and the accompanying materials are made available
williamr@2
     5
* under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
williamr@2
     6
* which accompanies this distribution, and is available
williamr@2
     7
* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     8
*
williamr@2
     9
* Initial Contributors:
williamr@2
    10
* Nokia Corporation - initial contribution.
williamr@2
    11
*
williamr@2
    12
* Contributors:
williamr@2
    13
*
williamr@2
    14
* Description:        Class describes some IdentityProvider service
williamr@2
    15
*
williamr@2
    16
*/
williamr@2
    17
williamr@2
    18
williamr@2
    19
williamr@2
    20
williamr@2
    21
williamr@2
    22
williamr@2
    23
williamr@2
    24
williamr@2
    25
#ifndef SEN_IDENTITY_PROVIDER_H
williamr@2
    26
#define SEN_IDENTITY_PROVIDER_H
williamr@2
    27
williamr@2
    28
//  INCLUDES
williamr@2
    29
#include <SenXmlServiceDescription.h>
williamr@2
    30
williamr@2
    31
// CONSTANTS
williamr@2
    32
const TInt KSenAuthMaxUsernameLength = 32;
williamr@2
    33
const TInt KSenAuthMaxPasswordLength = 16;
williamr@2
    34
williamr@2
    35
_LIT8(KIdentityProvider8, "IdentityProvider"); 	//@depricated
williamr@2
    36
_LIT8(KFakeIMEI8, "012345678901234");		//@depricated
williamr@2
    37
_LIT8(KContract8, "urn:liberty:as:2004-04");		//@depricated
williamr@2
    38
_LIT8(KSenIdpLocalname,                 "IdentityProvider");
williamr@2
    39
_LIT8(KSenIdpLibertyIdWsfAsContract,            "urn:liberty:as:2004-04");
williamr@2
    40
_LIT8(KWSAtomPubAuthenticationServiceContract,  "urn:atompub:as");
williamr@2
    41
_LIT8(KWSOviAuthenticationServiceContract,      "urn:ovi:as");
williamr@2
    42
_LIT8(KWSStarSTSContract,                       "urn:wstar:sts");
williamr@2
    43
_LIT8(KImei, "IMEI");		//@depricated
williamr@2
    44
_LIT8(KType, "type");		//@depricated
williamr@2
    45
williamr@2
    46
_LIT8(KAuthzID8, "AuthzID");		//@depricated
williamr@2
    47
_LIT8(KAdvisoryAuthnID8, "AdvisoryAuthnID");			//@depricated	
williamr@2
    48
_LIT8(KPassword8, "Password");		//@depricated
williamr@2
    49
_LIT8(KProviderID8, "ProviderID");		//@depricated
williamr@2
    50
_LIT8(KSenIdpAuthzIDLocalname,          "AuthzID");
williamr@2
    51
_LIT8(KSenIdpAdvisoryAuthnIdLocalname,  "AdvisoryAuthnID");
williamr@2
    52
_LIT8(KSenIdpPasswordLocalname,         "Password");
williamr@2
    53
_LIT8(KSenIdpProviderIdLocalname,       "ProviderID");
williamr@2
    54
_LIT8(KSenAccountExtensions,            "AccountExtensions");
williamr@2
    55
_LIT8(KSenAccAutoSignIn,                "AutoSignIn");
williamr@2
    56
                
williamr@2
    57
// DATA TYPES
williamr@2
    58
class TSenAuthentication
williamr@2
    59
    {
williamr@2
    60
    public:
williamr@2
    61
        TBuf8<KSenAuthMaxUsernameLength> iUsername;
williamr@2
    62
        TBuf8<KSenAuthMaxPasswordLength> iPassword;
williamr@2
    63
    };
williamr@2
    64
williamr@2
    65
// FORWARD DECLARATIONS
williamr@2
    66
class MSenIdentityManager;
williamr@2
    67
williamr@2
    68
// CLASS DECLARATION
williamr@2
    69
williamr@2
    70
/**
williamr@2
    71
*  Class describes some IdentityProvider service
williamr@2
    72
*  Class is intented to be used when registrating
williamr@2
    73
*  information about some identity providing service.
williamr@2
    74
*  In case of ID-WSF framework, the IdentityProvider
williamr@2
    75
*  and Authentication Service are behind same endpoint.
williamr@2
    76
*  Typically, ID-WSF service consumers call both
williamr@2
    77
*  RegisterIdentityProviderL() and 
williamr@2
    78
*  RegisterServiceDescriptionL() methods as defined
williamr@2
    79
*  in Service Management API (CSenServiceManager).
williamr@2
    80
*  Basic Web Service consumers use this class to register
williamr@2
    81
*  BASIC-AUTH credentials to certain pre-known service endpoint.
williamr@2
    82
*  @lib SenServDesc.lib
williamr@2
    83
*  @since Series60 3.0
williamr@2
    84
*/
williamr@2
    85
class CSenIdentityProvider : public CSenXmlServiceDescription
williamr@2
    86
    {
williamr@2
    87
    public:  // Constructors and destructor
williamr@2
    88
        
williamr@2
    89
        /**
williamr@2
    90
        * Two-phased constructor.
williamr@2
    91
        * Note: contract defaults here to "urn:liberty:as:2004-04"
williamr@2
    92
        * @since Series60 3.0
williamr@2
    93
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
    94
        *        include characters which are illegal in XML. If endpoint
williamr@2
    95
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
    96
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
    97
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
    98
        *        for encoding of basic XML entities.
williamr@2
    99
        * @return a new CSenIdentityProvider
williamr@2
   100
        */
williamr@2
   101
        IMPORT_C static CSenIdentityProvider* NewL( const TDesC8& aEndpoint );
williamr@2
   102
williamr@2
   103
        /**
williamr@2
   104
        * Two-phased constructor.
williamr@2
   105
        * Note: contract defaults here to "urn:liberty:as:2004-04"
williamr@2
   106
        * @since Series60 3.0
williamr@2
   107
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   108
        *        include characters which are illegal in XML. If endpoint
williamr@2
   109
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   110
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   111
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   112
        *        for encoding of basic XML entities.
williamr@2
   113
        * @return a new CSenIdentityProvider, which pointer is left on
williamr@2
   114
        *         cleanup stack.
williamr@2
   115
        */
williamr@2
   116
        IMPORT_C static CSenIdentityProvider* NewLC( const TDesC8& aEndpoint );
williamr@2
   117
williamr@2
   118
        /**
williamr@2
   119
        * Two-phased constructor.
williamr@2
   120
        * @since Series60 3.0
williamr@2
   121
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   122
        *        include characters which are illegal in XML. If endpoint
williamr@2
   123
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   124
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   125
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   126
        *        for encoding of basic XML entities.
williamr@2
   127
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   128
        *        Default is Liberty ID-WSF Authentication Service contract:
williamr@2
   129
        *        -- urn:liberty:as:2004-04
williamr@2
   130
        * @return a new CSenIdentityProvider
williamr@2
   131
        */
williamr@2
   132
        IMPORT_C static CSenIdentityProvider* NewL( const TDesC8& aEndpoint,
williamr@2
   133
                                                    const TDesC8& aContract );
williamr@2
   134
williamr@2
   135
        /**
williamr@2
   136
        * Two-phased constructor.
williamr@2
   137
        * @since Series60 3.0
williamr@2
   138
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   139
        *        include characters which are illegal in XML. If endpoint
williamr@2
   140
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   141
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   142
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   143
        *        for encoding of basic XML entities.
williamr@2
   144
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   145
        *        Default is Liberty ID-WSF Authentication Service contract:
williamr@2
   146
        *        -- urn:liberty:as:2004-04
williamr@2
   147
        * @return a new CSenIdentityProvider, which pointer is left on
williamr@2
   148
        *         cleanup stack.
williamr@2
   149
        */
williamr@2
   150
        IMPORT_C static CSenIdentityProvider* NewLC(const TDesC8& aEndpoint,
williamr@2
   151
                                                    const TDesC8& aContract );
williamr@2
   152
        
williamr@2
   153
        /**
williamr@2
   154
        * Two-phased constructor.
williamr@2
   155
        * @since Series60 3.0
williamr@2
   156
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   157
        *        include characters which are illegal in XML. If endpoint
williamr@2
   158
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   159
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   160
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   161
        *        for encoding of basic XML entities.
williamr@2
   162
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   163
        *        Default is Liberty ID-WSF Authentication Service contract:
williamr@2
   164
        *        -- urn:liberty:as:2004-04
williamr@2
   165
        * @param aProviderID is identifier of this IdentityProvider. It is a
williamr@2
   166
        *        unique key pointing to some known endpoint.
williamr@2
   167
        * @return a new CSenIdentityProvider
williamr@2
   168
        */
williamr@2
   169
        IMPORT_C static CSenIdentityProvider* NewL( const TDesC8& aEndpoint,
williamr@2
   170
                                                    const TDesC8& aContract,
williamr@2
   171
                                                    const TDesC8& aProviderID);
williamr@2
   172
williamr@2
   173
        /**
williamr@2
   174
        * Two-phased constructor.
williamr@2
   175
        * @since Series60 3.0
williamr@2
   176
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   177
        *        include characters which are illegal in XML. If endpoint
williamr@2
   178
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   179
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   180
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   181
        *        for encoding of basic XML entities.
williamr@2
   182
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   183
        *        Default is Liberty ID-WSF Authentication Service contract:
williamr@2
   184
        *        -- urn:liberty:as:2004-04
williamr@2
   185
        * @param aProviderID is identifier of this IdentityProvider. It is a
williamr@2
   186
        *        unique key pointing to some known endpoint. Required only
williamr@2
   187
        *        for ID-WSF framework.
williamr@2
   188
        * @return a new CSenIdentityProvider, which pointer is left on
williamr@2
   189
        *         cleanup stack.
williamr@2
   190
        */
williamr@2
   191
        IMPORT_C static CSenIdentityProvider* NewLC(const TDesC8& aEndpoint,
williamr@2
   192
                                                    const TDesC8& aContract,
williamr@2
   193
                                                    const TDesC8& aProviderID);
williamr@2
   194
williamr@2
   195
        /**
williamr@2
   196
        * Two-phased constructor.
williamr@2
   197
        * @since Series60 3.0
williamr@2
   198
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   199
        *        include characters which are illegal in XML. If endpoint
williamr@2
   200
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   201
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   202
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   203
        *        for encoding of basic XML entities.
williamr@2
   204
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   205
        *        Default is Liberty ID-WSF Authentication Service contract:
williamr@2
   206
        *        -- urn:liberty:as:2004-04
williamr@2
   207
        * @param aProviderID is identifier of this IdentityProvider. It is a
williamr@2
   208
        *        unique key pointing to some known endpoint. Required only
williamr@2
   209
        *        for ID-WSF framework.
williamr@2
   210
        * @param aServiceID is a unique contract to some invocable service.
williamr@2
   211
        *        Typically some URN. If this IDP is registered to ID-WSF 
williamr@2
   212
        *        framework, this ServiceID will be appended into list of
williamr@2
   213
        *        services which trust this IDP, and the actual IDP "knows".
williamr@2
   214
        * @return a new CSenIdentityProvider
williamr@2
   215
        */
williamr@2
   216
        IMPORT_C static CSenIdentityProvider* NewL( const TDesC8& aEndpoint,
williamr@2
   217
                                                    const TDesC8& aContract,
williamr@2
   218
                                                    const TDesC8& aProviderID,
williamr@2
   219
                                                    const TDesC8& aServiceID);
williamr@2
   220
williamr@2
   221
        /**
williamr@2
   222
        * Two-phased constructor.
williamr@2
   223
        * @since Series60 3.0
williamr@2
   224
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   225
        *        include characters which are illegal in XML. If endpoint
williamr@2
   226
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   227
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   228
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   229
        *        for encoding of basic XML entities.
williamr@2
   230
        * @param aProviderID is identifier of this IdentityProvider. It is a
williamr@2
   231
        *        unique key pointing to some known endpoint. Required only
williamr@2
   232
        *        for ID-WSF framework.
williamr@2
   233
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   234
        *        Default is Liberty ID-WSF Authentication Service contract:
williamr@2
   235
        *        -- urn:liberty:as:2004-04
williamr@2
   236
        * @param aServiceID is a unique contract to some invocable service.
williamr@2
   237
        *        Typically some URN. If this IDP is registered to ID-WSF 
williamr@2
   238
        *        framework, this ServiceID will be appended into list of
williamr@2
   239
        *        services which trust this IDP, and the actual IDP "knows".
williamr@2
   240
        * @return a new CSenIdentityProvider, which pointer is left on
williamr@2
   241
        *         cleanup stack.
williamr@2
   242
        */
williamr@2
   243
        IMPORT_C static CSenIdentityProvider* NewLC(const TDesC8& aEndpoint,
williamr@2
   244
                                                    const TDesC8& aContract,
williamr@2
   245
                                                    const TDesC8& aProviderID,
williamr@2
   246
                                                    const TDesC8& aServiceID);
williamr@2
   247
williamr@2
   248
        /**
williamr@2
   249
        * Destructor.
williamr@2
   250
        */
williamr@2
   251
        IMPORT_C virtual ~CSenIdentityProvider();
williamr@2
   252
williamr@2
   253
        // New functions
williamr@2
   254
williamr@2
   255
        /**
williamr@2
   256
        * A getter.
williamr@2
   257
        * @since Series60 3.0
williamr@2
   258
        * @return a pointer to authorization id
williamr@2
   259
        */
williamr@2
   260
        IMPORT_C virtual TPtrC8 AuthzID();
williamr@2
   261
williamr@2
   262
        /**
williamr@2
   263
        * A getter.
williamr@2
   264
        * @since Series60 3.0
williamr@2
   265
        * @return a pointer to advisory authentication id
williamr@2
   266
        */
williamr@2
   267
        IMPORT_C virtual TPtrC8 AdvisoryAuthnID();
williamr@2
   268
williamr@2
   269
        /**
williamr@2
   270
        * A getter.
williamr@2
   271
        * @since Series60 3.0
williamr@2
   272
        * @return a pointer to provider id
williamr@2
   273
        */
williamr@2
   274
        IMPORT_C TPtrC8 ProviderID();
williamr@2
   275
williamr@2
   276
        /**
williamr@2
   277
        * A getter.
williamr@2
   278
        * @since Series60 3.0
williamr@2
   279
        * @return a pointer to password
williamr@2
   280
        */
williamr@2
   281
        IMPORT_C virtual TPtrC8 Password();
williamr@2
   282
williamr@2
   283
        /**
williamr@2
   284
        * A getter.
williamr@2
   285
        * @since Series60 3.0
williamr@2
   286
        * @return a pointer to IMEI
williamr@2
   287
        */
williamr@2
   288
        IMPORT_C const TDesC8& IMEI();
williamr@2
   289
williamr@2
   290
        /**
williamr@2
   291
        * A getter.
williamr@2
   292
        * @since Series60 3.0
williamr@2
   293
        * @return a pointer to username
williamr@2
   294
        */
williamr@2
   295
        IMPORT_C TPtrC8 UserName();
williamr@2
   296
williamr@2
   297
        /**
williamr@2
   298
        * Setter
williamr@2
   299
        * @since Series60 3.0
williamr@2
   300
        * @param aProviderID the set id
williamr@2
   301
        * @return KErrNone or other system-wide Symbian error codes.
williamr@2
   302
        */
williamr@2
   303
        IMPORT_C TInt SetProviderID( const TDesC8& aProviderID );
williamr@2
   304
williamr@2
   305
        /**
williamr@2
   306
        * Setter for ServiceID. ServiceID is the contract of some
williamr@2
   307
        * invocable service, typically some URN.
williamr@2
   308
        * Note, that when registering an IDP the possibly existing
williamr@2
   309
        * list of ServiceIDs is not cleared, but the ServiceID set
williamr@2
   310
        * via this method is added as new entry into that list, if
williamr@2
   311
        * it was non-existent.
williamr@2
   312
        * @since Series60 3.0
williamr@2
   313
        * @param aServiceID the set id
williamr@2
   314
        * @return KErrNone or other system-wide Symbian error codes.
williamr@2
   315
        */
williamr@2
   316
        IMPORT_C TInt SetServiceID( const TDesC8& aServiceID );
williamr@2
   317
williamr@2
   318
        /**
williamr@2
   319
        * @since Series60 3.0
williamr@2
   320
        * @param aServiceDescription the service description to check
williamr@2
   321
        * @return   ETrue if the ServiceDescription, i.e. its endpoint
williamr@2
   322
        *                 or contract, is associated to this IdentityProvider.
williamr@2
   323
        *                 Or if the ServiceDescription is about this
williamr@2
   324
        *                 IdentityProvider.
williamr@2
   325
        *           EFalse otherwise
williamr@2
   326
        */
williamr@2
   327
        IMPORT_C TBool IsTrustedByL( MSenServiceDescription& aServiceDescription );
williamr@2
   328
williamr@2
   329
        /**
williamr@2
   330
        * @since Series60 3.0
williamr@2
   331
        * @param aProviderIdOrServiceId    IdentityProvider ID, or Service ID
williamr@2
   332
        *                 which is being checked. Service ID is typically URI
williamr@2
   333
        *                 (service contract or service endpoint).
williamr@2
   334
        * @return   ETrue if the ServiceDescription, i.e. its endpoint
williamr@2
   335
        *                 or contract, is associated to this IdentityProvider.
williamr@2
   336
        *                 Or if the ServiceDescription is about this
williamr@2
   337
        *                 IdentityProvider.
williamr@2
   338
        *           EFalse otherwise
williamr@2
   339
        */
williamr@2
   340
        IMPORT_C TBool IsTrustedByL( const TDesC8& aProviderIdOrServiceId );
williamr@2
   341
williamr@2
   342
        /**
williamr@2
   343
        * Checks if this identity provider is set as default .
williamr@2
   344
        * @since Series60 3.0
williamr@2
   345
        * @return ETrue if default-attribute was set, EFalse otherwise
williamr@2
   346
        */
williamr@2
   347
        IMPORT_C TBool IsDefault();
williamr@2
   348
williamr@2
   349
        /**
williamr@2
   350
        * Sets the user information.
williamr@2
   351
        *   Status codes:
williamr@2
   352
        *   KErrNone        ok
williamr@2
   353
        *   Other codes are system error codes.
williamr@2
   354
        * @since Series60 3.0
williamr@2
   355
        * @param aAuthzID Authorization id.
williamr@2
   356
        * @param aAdvisoryAuthnID Advisory authorization id.
williamr@2
   357
        * @param aPassword Password.
williamr@2
   358
        * @return status/error code.
williamr@2
   359
        */
williamr@2
   360
        IMPORT_C TInt SetUserInfoL( const TDesC8& aAuthzID,
williamr@2
   361
                                    const TDesC8& aAdvisoryAuthnID,
williamr@2
   362
                                    const TDesC8& aPassword );
williamr@2
   363
williamr@2
   364
        /**
williamr@2
   365
        * @deprecated. This method is no longer in use.
williamr@2
   366
        * Creates http-credentials by making password-username pair 
williamr@2
   367
        * and encoding it with BASE-64.
williamr@2
   368
        * @since Series60 3.0
williamr@2
   369
        * @param    aIdMgr  Identitymanager which is used to obtain a password
williamr@2
   370
        *                   if no password for this identityprovider was set.
williamr@2
   371
        * @return   a newly allocated credentialbuffer. Ownership is transferred 
williamr@2
   372
        *           to the caller.
williamr@2
   373
        */
williamr@2
   374
        IMPORT_C HBufC8* HttpCredentialsL( MSenIdentityManager& aIdMgr );
williamr@2
   375
    
williamr@2
   376
        // Functions from base classes
williamr@2
   377
    
williamr@2
   378
        // From CSenXmlServiceDescription
williamr@2
   379
        
williamr@2
   380
        /**
williamr@2
   381
        * @since Series60 3.0
williamr@2
   382
        * @return Descriptor containing service description local name
williamr@2
   383
        *                    for this service description.
williamr@2
   384
        *                    This is the localname of the element, when this class is
williamr@2
   385
        *                    represented as an XML element. 
williamr@2
   386
        */
williamr@2
   387
        IMPORT_C const TDesC8& NewElementName();
williamr@2
   388
williamr@2
   389
        /**
williamr@2
   390
        * Setter for (identity) provider ID (leaving variant)
williamr@2
   391
        * @since Series60 4.0
williamr@2
   392
        * @param aProviderID the unique identifier of the (identity) provider
williamr@2
   393
        * @return KErrNone on success, KErrArgument if aProviderID is a
williamr@2
   394
        * zero-length descriptor, or one of the system-wide error codes
williamr@2
   395
        * otherwise.
williamr@2
   396
        */
williamr@2
   397
        IMPORT_C TInt SetProviderIdL( const TDesC8& aProviderID );
williamr@2
   398
        
williamr@2
   399
        IMPORT_C TInt SetAccountExtensionsL(const TDesC8& aDetail);
williamr@2
   400
        
williamr@2
   401
        IMPORT_C TPtrC8 AccountExtensions(CSenElement*& aAccExt);
williamr@2
   402
williamr@2
   403
    protected:  
williamr@2
   404
    
williamr@2
   405
        /*
williamr@2
   406
          C++ default constructor
williamr@2
   407
        */
williamr@2
   408
        IMPORT_C CSenIdentityProvider( TDescriptionClassType aType );
williamr@2
   409
        
williamr@2
   410
williamr@2
   411
        // Functions from base classes
williamr@2
   412
    
williamr@2
   413
        // From CSenXmlServiceDescription
williamr@2
   414
        
williamr@2
   415
        /**
williamr@2
   416
        * Standard 2nd phase constructor.   
williamr@2
   417
        * @since Series60 3.0
williamr@2
   418
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   419
        *        include characters which are illegal in XML. If endpoint
williamr@2
   420
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   421
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   422
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   423
        *        for encoding of basic XML entities.
williamr@2
   424
        */
williamr@2
   425
        IMPORT_C void ConstructL(const TDesC8& aEndPoint);
williamr@2
   426
        
williamr@2
   427
        /**
williamr@2
   428
        * @since Series60 3.0
williamr@2
   429
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   430
        *        include characters which are illegal in XML. If endpoint
williamr@2
   431
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   432
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   433
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   434
        *        for encoding of basic XML entities.
williamr@2
   435
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   436
        *        Default contract is Liberty ID-WSF Authentication Service
williamr@2
   437
        *        - "urn:liberty:as:2004-04".
williamr@2
   438
        */
williamr@2
   439
        IMPORT_C void ConstructL(const TDesC8& aEndPoint,
williamr@2
   440
                                 const TDesC8& aContract);
williamr@2
   441
williamr@2
   442
        /**
williamr@2
   443
        * @since Series60 3.0
williamr@2
   444
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   445
        *        include characters which are illegal in XML. If endpoint
williamr@2
   446
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   447
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   448
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   449
        *        for encoding of basic XML entities.
williamr@2
   450
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   451
        *        Default contract is Liberty ID-WSF Authentication Service
williamr@2
   452
        *        - "urn:liberty:as:2004-04".
williamr@2
   453
        * @param aProviderID is identifier of this IdentityProvider. It is a
williamr@2
   454
        *        unique key pointing to some known endpoint. Required only
williamr@2
   455
        *        for ID-WSF framework.
williamr@2
   456
        */
williamr@2
   457
        IMPORT_C void ConstructL(const TDesC8& aEndPoint,
williamr@2
   458
                                 const TDesC8& aContract,
williamr@2
   459
                                 const TDesC8& aProviderID);
williamr@2
   460
williamr@2
   461
        /**
williamr@2
   462
        * @since Series60 3.0
williamr@2
   463
        * @param aEndpoint the service endpoint. Note that endpoint cannot 
williamr@2
   464
        *        include characters which are illegal in XML. If endpoint
williamr@2
   465
        *        is an URL which contains illegal characters (like '&'-char),
williamr@2
   466
        *        those need to be encoded into XML entity form (like &amp;).
williamr@2
   467
        *        EncodeHttpCharactersLC() method from XmlUtils can be used
williamr@2
   468
        *        for encoding of basic XML entities.
williamr@2
   469
        * @param aContract identifies the service type. Typically some URN.
williamr@2
   470
        *        Default contract is Liberty ID-WSF Authentication Service
williamr@2
   471
        *        - "urn:liberty:as:2004-04".
williamr@2
   472
        * @param aProviderID is identifier of this IdentityProvider. It is a
williamr@2
   473
        *        unique key pointing to some known endpoint. Required only
williamr@2
   474
        *        for ID-WSF framework.
williamr@2
   475
        * @param aServiceID is a unique contract to some invocable service.
williamr@2
   476
        *        Typically some URN. If this IDP is registered to ID-WSF 
williamr@2
   477
        *        framework, this ServiceID will be appended into list of
williamr@2
   478
        *        services which trust this IDP, and the actual IDP "knows".
williamr@2
   479
        */
williamr@2
   480
        IMPORT_C void ConstructL( const TDesC8& aEndPoint,
williamr@2
   481
                                  const TDesC8& aContract,
williamr@2
   482
                                  const TDesC8& aProviderID,
williamr@2
   483
                                  const TDesC8& aServiceID );
williamr@2
   484
    };
williamr@2
   485
williamr@2
   486
#endif // SEN_IDENTITY_PROVIDER_H
williamr@2
   487
williamr@2
   488
// End of File