Introduction and Release Notes

This article introduces you to the .NET Stack Releases and provides helpful release notes for each.


The LDS .NET Stack Current Release (3.5) is installed using the NuGet Package Manager, which integrates with Visual Studio 2013.

Release Notes

.NET Stack Release 3.5

- The OblixAnonymous account was recently associated with an LDS Account Id by the WAM team, so .NET Stack products that were doing Basic authentication and expecting a null value returned for account id were all of a sudden receiving a valid value. With this release of the Stack, a check is made to see if the account id is null or equivalent to the anonymous account id. The change was made to the ParseToLdsAccountUser() method in Core\Lds.Stack\Security\Web\Sso\SsoHeaders.cs.

- Added the webmatrix.webdata and NuGet packages to the Stack.

- Changed LdsAccountMembershipProvider to be derived from ExtendedMembershipProvider instead of MembershipProvider. Added implementation of methods defined in the abstract ExtendedMembershipProvider class.

- Changed tool version from 4.0 (VS 2012) to 12.0 (VS 2013).

.NET Stack Release 3.4

Version 3.4 is concerned with Canary Pages and ClickOnce Deployment with the TFS Build Process.

.NET Stack Release 3.3

Version 3.3 and up deals with Digest Authentication with the LDS .NET Stack, Integration of Microsoft Web Protection library and adding custom HTTP Headers with Digest Authentication. Sometimes in HTTP requests you need to add your own custom HTTP Headers. This release explains how to easily add these headers when you are using the Stack's Digest Authentication functionality.

Features and Fixes

  1. Digest Authentication with the LDS .NET Stack
    After installing the Stack in any new Visual Studio Project, follow these steps to enable Digest Authentication with a web service:
  2. Integration of Microsoft Web Protection Library
  3. Adding custom HTTP Headers with Digest Authentication

.NET Stack Release 3.2.2

Features and Fixes

This release is primarily a bug-fix and stability update in preparation for upcoming features.

  • Ignore paths for static content: Create a list of folders in your web application project for stack authentication to ignore. This will save your project from performing needless authentication requests for simple file requests such as images and scripts.
  • Moved the check for single sign-on (SSO) to earlier in the request life cycle.

.NET Stack Release 3.1

Breaking Changes

Version 3.x is a ground up rewrite of the .NET Stack Library. This release was built with the .NET Framework 4.0 and is not backward-compatible with previous versions of the Microsoft .NET Framework or previous versions of the LDS .NET Stack Library.

Features and Fixes

The .NET Stack Team evaluated custom features and services developed for previous versions of the .NET Stack Library. Whenever the same or similar functionality can be achieved using built-in features of .NET Framework 4.0, the custom code was removed.

  • Improved install and uninstall process for the .NET Stack Library and dependencies using NuGet.
  • Simplified, automated registration of the Stack Library in the default Unity Container.
  • Redesigned and simplified Stack Security Framework and LDS Account Access reduce configuration requirements and improves usability of the APIs.
  • LDS Account is the default provider for authentication and authorization. Additional Authorization Information Providers are easy to add.
  • Web applications can easily participate in WAM SSO with no code changes. SSO is enabled through Web.config.
  • When a user is authenticated using LDS Account, the Principal for the current thread (or HTTP request) is an instance of LdsAccountUser, providing access to all LDS Account properties your application is authorized to view without any additional code or configuration requirements. This includes LDS Account authorization through SSO.

Previous Releases

.NET Stack Release 2.3.1

2.3.1 is a maintenance release of the 2.3 release. It addresses several critical bugs and is a required upgrade. The only potential breaking change is if you were expecting Container.RegisterStackInContainer to load WCF services in the client config file automatically, you now have to opt in to that functionality using a boolean parameter in a new overload to Container.RegisterStackInContainer.

Download LDS .NET Stack Previous Release (2.3).

View Previous Release (2.3) documentation.

Features and Fixes

  • BUGFIX: Automatic Service Host was not reassigning Thread credentials on every request (fixed in build 16).
  • SECURITY: Resolved SQL Injection vulnerabilities in the Stack Authorization library.
  • SECURITY: Fixed an issue where Stack was not denying anonymous bind requests and thus inappropriately returning success for authentication requests with blank passwords. The Church's directory treats bind requests with blank passwords as anonymous binds and returns success. The Stack now detects blank passwords and returns false regardless of what the directory returns.
  • BUGFIX: Fixed numerous issues with the Automatic Service Host to enable it to more reliably host services in a variety of environments and usage scenarios.
  • BUGFIX: Updated how the Stack handles exceptions from the LDAP server to report sign in failures when accounts are locked out or disabled rather than throwing an exception.
  • BUGFIX: When Visual Studio generates the Service Proxy, after you do an "Add Service Reference", it doesn't fully qualify the type of the service contract in the Web.config file. This makes it impossible to dynamically get the type of the contract. Previously the Stack would try to load all the service references in the config file into the default container. In this Stack release, that functionality is disabled by default. To have the Web Service contracts added to the container, you have to opt in using a new overload of the method Container.RegisterStackInContainer. You also have to edit the contractType attribute in the config file to specify the assembly in which to find the reference (usually it is the default assembly for the application).

.NET Stack Release 2.3

Breaking Changes

The .NET Stack Team worked hard in this release to clean up less used features and streamline the .NET Stack Libraries. In most cases, these changes are transparent and will not require significant code or configuration changes. However, you should be aware of the following:

  • For web applications, the custom Authentication Service has been replaced with an ASP.NET Membership Provider. If you have an <Lds.Stack.Services> configuration section with an AuthenticationConfiguration element, the AuthenticationConfiguration element should be removed. Membership information is configured through a <membership> element under <system.web>.
  • UserSecurity Logon and LogonAndRedirectIfSuccessful methods no longer take a domain parameter.
  • The domain name in Application Authorization is never used and was generally set to domainName="*" in application configuration. If you have an <Lds.Stack.Services> configuration section with an AuthorizationConfiguration element, the domainName attribute should be removed from all providers.
  • WCF Automatic Service Host will host Service Directory and Authentication services out of the box. We do not recommend hosting Lds.Stack.Services.Common.LdsAccountService directly through the Automatic Service Host, even though it was automatically hosted in previous versions of the Stack. If your application needs to make LDS Account calls, Lds.Stack.Services.Common.LdsAccountService can be used as a library on the server side of your application.

Features and Fixes

  • NEW: Stack Documentation at MSStack.
  • NEW: Simplified ASP.NET authentication by replacing the custom Authentication Service with an ASP.NET Membership Provider.
  • NEW: Improved WCF Automatic Service Host for WPF client-server applications.
  • NEW: Improved WCF Service Interoperability.
  • NEW: Made .NET Stack Library PDB files available with this release (and each future release) for easier debugging.
  • SECURITY: Changed GlobalDirectoryAuthenticator to use a Bind instead of a Compare to validate credentials.
  • BUGFIX: SessionToken caching issues cause a session to expire prematurely (this fix eliminates the need for the sessionsExpireAfterMinutes="1200" workaround).
  • BUGFIX: Write errors when launching a .NET Stack enabled application when the configuration file could not be created or modified.
  • BUGFIX: Parsing an LDS Account user returns null when the Workforce ID attribute is invalid.
  • REMOVED: Application Login functionality which allowed an application to log on to a network resource separately from users of the application.

.NET Stack Release 2.2

Breaking Changes

The following classes and interfaces were moved from the assemblies and namespaces into the Lds.Stack.Security namespace in the Lds.Stack.Library assembly. This change will require an update to the configuration files that reference these Authenticators. This will usually and likely be the Lds.Stack.Services configuration sections on the server side of an application.

  • GlobalDirectoryUserAuthenticator
  • StubAuthenticator
  • TestGlobalDirectoryUserAuthenticator
  • AuthenticationResult
  • IAuthenticator
  • IAuthenticatorResult

Features and Fixes

Added ASP.NET Membership Provider that uses LDS Account for authentication.

Known Issues

  • Caching of Authorization Information will not work in load balanced scenarios so additional requests for Authorization information will be made.
  • Creating a Stack-Enabled MVC Web Application with a Test Project doesn’t work.
  • Application Authorization fails if no applications have been configured in the application database.
  • Creating WCF Application Services that inherit from other WCF services fail when used with the Stack Automatic Service Host.
  • WCF Services using Stack Security do not have sliding expiration and so the timeout value for a sign in will expire in the configured number of minutes from the time of sign in instead of from the last use.
This page was last modified on 11 July 2014, at 14:38.

Note: Content found in this wiki may not always reflect official Church information. See Terms of Use.