IPassportManager Interface
IPassportManager Interface
The IPassportManager interface is the primary interface for the Passport Manager object. The Passport Manager object is a server-side object for Microsoft .NET Passport single sign-in (SSI), which uses cookies and query string data as intermediaries for querying a central user store.
The Passport Manager object can also access a second-generation interface, IPassportManager2, or third-generation interface, IPassportManager3, once queried for. These interfaces are used to call some of the recently added client-aware authentication application programming interfaces (APIs).
The Passport Manager object has the following capabilities:
- Provides an embedded encryption service that protects users' data without requiring additional work. The encryption/decryption logic is handled automatically as part of the Passport Manager object's built-in methods.
- Handles all the .NET Passport cookie setting, parsing, and expiration logic so that participating sites do not need to access the .NET Passport-specific cookies using Request.Cookies or HTTP/ISAPI coding.
- Silently contacts the network Nexus to determine the current configuration of the network, including required service URLs and the current Profile schema, and writes a local Component Configuration Document (CCD).
Accessing IPassportManager Methods from C++ Code
Header Files
The Passport header file, passport.h, can be found in the \include subdirectory. The Passport library file, passport.lib, can be found in the \lib\x86 subdirectory.
#import Using Visual Studio
You can access the IPassportManager interface through the MSPPMGR.DLL, using Microsoft Visual C++ and the #import directive. There are several attributes that must be set correctly in order for the IPassportManager interface to be usable in a general namespace using the syntax as described here. The following is the recommended attribute syntax for the #import directive:
#import "[path\]msppmgr.dll" named_guids raw_interfaces_only no_namespace
- named_guids allows the compiler to access the two key GUIDs included in the embedded .NET Passport type library: CLSID_Crypt and IID_IPassportCrypt.
- raw_interfaces_only specifies to skip writing wrapper functions for the IPassportManager methods and exposes the underlying methods directly. You must do this to allow HRESULTs to be returned, and to make method calls conform to the syntax given in this reference.
- no_namespace places all imported methods in the general top-level namespace for your project. This way you always have access to the IPassportManager methods and properties. You can otherwise specify an easy-to-remember namespace with rename_namespace in order to keep IPassportManager implementation distinct in your code.
You must have the MSPPMGR.DLL available on the development computer to #import it. For a full code sample of instantiating the Passport Manager object through the Component Object Model (COM), see Passport Manager Object.
IPassportManager Interface Methods
Returns a string containing the Login server URL for a user's domain, as well as optional information sent to the Login server in the query string.
Deprecated in version 2.0. Do not use.
IPassportManager::DomainFromMemberName
Returns a user's domain authority name as a string.
IPassportManager::GetDomainAttribute
Provides information for a particular .NET Passport domain by querying the Passport Manager for the requested domain attribute.
Returns any error code in the Ticket cookie or in Ticket information on the query string.
IPassportManager::get_FromNetworkServer
Determines whether the containing page has valid Ticket information on the query string.
IPassportManager::get_HasSavedPassword
Determines whether a user is saving his or her password on the .NET Passport Sign-in page.
IPassportManager::get_HasTicket
Returns whether a user has a .NET Passport Ticket (but does not check the Ticket's timestamps).
Retrieves the value of a named attribute from a user's core profile.
IPassportManager::get_TicketAge
Retrieves the amount of time, in seconds, that has passed since a user's Ticket was issued or refreshed.
IPassportManager::get_TimeSinceSignIn
Retrieves the amount of time, in seconds, that has passed since a user's manual sign-in to a .NET Passport Login server. This checks the sign-in timestamp provided in the .NET Passport Ticket cookie.
Not implemented. Use IPassportManager::get_Error instead.
Determines whether a user has profile data already available in the query string or a cookie.
Returns whether a user has consent for purposes of Microsoft® Kids Passport authentication.
IPassportManager::IsAuthenticated
Determines whether a user has a valid, unexpired .NET Passport Ticket cookie in the caller's domain.
Returns an HTML snippet that includes an IMG source string for a .NET Passport link. The link image displays either Sign In if no valid Ticket cookie is detected or Sign Out if a valid Ticket cookie is detected.
IPassportManager::OnStartPageASP
Instantiates Passport Manager objects created by Passport Factory.
IPassportManager::OnStartPageECB
Entry function for Passport Manager object when interacting with an ISAPI extension. Declares a buffer used to read or write the cookie input and output of the Passport Manager object.
IPassportManager::OnStartPageFilter
Enables creating an ISAPI filter that interacts with Passport Manager. Requires a pointer to the HTTP_FILTER_CONTEXT structure obtained through an HTTP filter's entry functions.
IPassportManager::OnStartPageManual
Deprecated in version 2.0. Do not use.
Deprecated in version 2.0. Do not use.
Information
Implementation Passport Manager object Inherits from IDispatch Header and IDL files passport.h, passport.idl Minimum operating systems Windows NT4 SP4 Server, Windows 2000 Server
Configuring Multiple Sites
If your site shares a common Site ID and encryption key, and if no servers in your installation serve Passport Manager for multiple sites on one physical box, the Crypt object can be instantiated either in page or session or application scope. However, if you have servers configured to handle multiple sites, and each site uses a different encryption key, then the Crypt object must be able to switch keys. In Active Server Pages (ASP), this issue is taken care of by handling the built-in OnStartPage method to set the keys. If OnStartPage is not being called, then the key should be set by using the IPassportCrypt::put_Host or IPassportCrypt::put_Site methods.
See Also
IPassportManager2 Interface | IPassportManager2::AuthURL2 | IPassportManager2::LogoTag2 | IPassportManager::get_Error | IPassportCrypt::put_Host | IPassportCrypt::put_Site | Configuring Multiple Sites | IPassportManager3 Interface