Version 1.2.0.0

DotRas SDK

Collapse image Expand Image Copy image CopyHover image

Version 1.2.0.0 was released June 1st, 2011.

Changes in this release

  • Features
    • Windows 7 features (WIN7 build type) have been added; this operating system is now officially supported.
      • Added InterfaceIndex property to RasDialer for VPN connections.
      • Added IPv6Address, IPv6PrefixLength, and NetworkOutageTime properties to RasEntry.
      • Added LocalEndPoint, RemoteEndPoint, and ConnectionSubState properties to RasConnectionStatus.
      • Added support for IKEv2 and PPP projection operations; see the GetProjectionInfo method on RasConnection.
      • Added support for updating tunnel endpoints on IKEv2 connections; see the new UpdateConnection method.
    • Added new static helper methods on RasConnection to assist in retrieving active connections.
    • RasDialer can now update credentials after a successful connection attempt for both synchronous and asynchronous attempts.
    • Added the AllowUseStoredCredentials property to RasDialer which enables or disables the retrieval of stored credentials when dialing a connection if no credentials are provided to the dialer. This value is false by default.
    • RasEntry.CreateVpnEntry now allows callers to disable the remote default gateway rather than having to remove the flag after the method has completed.
    • Added a new static method to RasEntry to assist with creating broadband connections.
    • Added support for saving credentials from RasEntry to the all users profile when available.
    • Exposed the polling interval used by the HangUp method on RasConnection and RasDialer to allow callers to specify their own interval if needed.
    • Added the IsBusy property to RasDialer to indicate when the component is in use.
    • Added support for using the equality/inequality operators on the RasHandle class when comparing handles.
    • Added RasConnection.GetActiveConnectionByHandle method to allow retrieving a connection by the handle.
    • Added the CredentialPromptDialog for requesting user credentials using the default Windows credential interface.
    • Added the Handle property to the DialCompletedEventArgs class. This property will contain the handle whose connection just completed.
    • Added support for retrieving and updating EAP user data on RasEntry.
    • Exposed the Text, Data, and CallbackId properties in RasPhoneBookDialog events.
  • Breaking Changes
    • Relocated the GetActiveConnections method from RasDialer to a static method on RasConnection. This was done to remove the need for a RasDialer instance when the class was not used by the method.
    • The overloads containing NetworkCredential for the Dial and DialAsync methods on RasDialer have been relocated to the Credentials property on the component. This was done to add support for updating credentials stored for the entry once a connection was successful.
    • The RasDialer component no longer assumes stored credentials should be used if the Credentials property is null. To allow stored credentials to be used, set the AllowUseStoredCredentials property to true.
    • The following flags are no longer exposed as they are set based on the data from the parent RasEntry object.

      • SpecificIPAddress - Is now set by setting the IPAddress property on RasEntry.
      • SpecificNameServers - Is now set by setting the DnsAddress or DnsAddressAlt properties on RasEntry.
      • UseCountryAndAreaCodes - Is now set by setting either CountryId, CountryCode, or AreaCode properties on RasEntry.
      • IPv6SpecificAddress - Is now set by setting the IPv6Address property on RasEntry for WIN7 and later build types.
      • IPv6SpecificNameServers - Is now set by setting the IPv6DnsAddress or IPv6DnsAddressAlt properties on RasEntry.
      • IPv4ExplicitMetric - Is now set by setting the IPv4InterfaceMetric property on RasEntry for WIN2K8 or later build types.
      • IPv6ExplicitMetric - Is now set by setting the IPv6InterfaceMetric property on RasEntry for WIN2K8 or later build types.
    • Renamed IsMultiLink properties to IsMultilink to comply with .NET naming guidelines on RasHandle and RasPppInfo objects.
    • The following flags have been made internal and instead have exposed a class with the same name as each enum containing multiple booleans.

      • RasNetworkProtocols
      • RasIkeV2Options
      • RasCompressionOptions
      • RasLcpOptions
      • RasEntryOptions and RasEntryExtendedOptions - Both flags have been consolidated to the RasEntryOptions class to help assist with development.
      • RasIPOptions
    • The RasDialExtendedOptions flags enum has now been made internal and the RasDialOptions class is now exposed. Also, the following flags are no longer exposed as they are set based on other settings on the RasDialer.
      • IgnoreModemSpeaker - Is now set by setting the SetModemSpeaker property on RasDialOptions.
      • IgnoreSoftwareCompression - Is now set by setting the SetSoftwareCompression property on RasDialOptions.
    • The RasIPv6Info class has had the LocalInterfaceIdentifier, PeerInterfaceIdentifier, LocalCompressionProtocol, and PeerCompressionProtocol properties array return values converted to their respective numeric types.
    • The connection handle that was being passed into the UserState property on DialCompletedEventArgs is now being passed into the Handle property.
    • The RasEapInfo class has been removed and the entire EAP infrastructure has been completely redesigned.
    • The RasDialer.EapData property has been removed. To set the EAP data used during dialing, use the SetEapUserData method.
  • Bug Fixes
    • Fixed a bug with RasPhoneBook that caused it to crash if the target directory did not already exist when opening a phonebook. The phone book will now always create the file when being opened to prevent this from happening.
    • Fixed a bug with RasConnection when hanging up entries that experience a long delay when disconnecting not leaving the hangup method after 3 seconds. This will prevent the application possibly ending and causing the connection to be left in an inconsistent state.
    • Fixed a bug with RasDialer causing an unhandled exception being thrown from the timeout callback if an error occurs during the timeout.
    • Fixed a couple bugs with RasPhoneBook not handling alternate entries on dial-up connections properly. It can now retrieve multiples and save them correctly.
    • Fixed an unhandled exception being thrown from RasDialer when attempting to hang up an already disconnected connection being reported from the RAS state callback.
    • Fixed an issue when adding or updating a broadband connection.
    • Fixed an issue when using RasDialer with Debian Linux VPN servers when providing invalid user credentials.
    • Fixed an issue when retrieving connection statistics causing overflow problems.
    • Fixed a bug with RasDialer leaving connections open when disconnected before the connection is considered active.
    • Fixed a bug with RasDialer not being able to dial L2TP connections when using EAP and certificates for authentication.
  • Other Changes
    • Removed the WINXPSP2 build type, use the WINXP build type instead.

      The Windows XP SP2 build was checked whether it was truely needed. After verification against the Windows SDK, it was found this build type was not necessary. There were no changes to RAS between Windows XP (0x501) and Windows XP Service Pack 2 (0x502).

    • Added additional example projects.
    • Changed the exception thrown from RasDialer when dialing connections by entry name with a null phonebook path from ArgumentException to an InvalidOperationException.
    • Gave the installation package a much needed face lift.
    • Changed the build system to allow for integration tests with multiple server operating systems for each available build type.
    • Made many changes to the code documentation.
    • Added disconnect button to the CreateAndDialVpnEntry example to show how to disconnect a connection attempt on an already connected entry.
    • Added support for Authenticode certificates in the build process for the installation package and output binaries.