diff --git a/MFaaP.MFWSClient/MFWSClient.Authentication.cs b/MFaaP.MFWSClient/MFWSClient.Authentication.cs index 971145d..9accc84 100644 --- a/MFaaP.MFWSClient/MFWSClient.Authentication.cs +++ b/MFaaP.MFWSClient/MFWSClient.Authentication.cs @@ -22,10 +22,15 @@ public partial class MFWSClient /// protected const string XAuthenticationHttpHeaderName = "X-Authentication"; + /// + /// The HTTP header name used to maintain the active vault (if multiple vaults and using SSO). + /// + protected const string XActiveVaultHttpHeaderName = "X-Active-Vault"; + /// /// The HTTP header name used for the vault guid (). /// - protected const string VaultHttpHeaderName = "X-Vault"; + protected const string XVaultHttpHeaderName = "X-Vault"; /// /// This is the authentication token used in the request headers. @@ -69,7 +74,7 @@ public void AddVaultHeader(Guid vaultGuid) /// Typically used with OAuth authentication tokens. public void AddVaultHeader(string vaultGuid) { - this.AddDefaultHeader(MFWSClient.VaultHttpHeaderName, vaultGuid); + this.AddDefaultHeader(MFWSClient.XVaultHttpHeaderName, vaultGuid); } /// @@ -78,7 +83,7 @@ public void AddVaultHeader(string vaultGuid) public void ClearVaultHeader() { // Remove the authorisation header. - foreach (var parameter in this.DefaultParameters.Where(p => p.Name == MFWSClient.VaultHttpHeaderName) + foreach (var parameter in this.DefaultParameters.Where(p => p.Name == MFWSClient.XVaultHttpHeaderName) .ToArray()) { this.DefaultParameters.Remove(parameter); @@ -98,7 +103,13 @@ protected virtual void ClearAuthenticationToken() this.CookieContainer = new CookieContainer(); // Remove the authorisation header. - foreach (var parameter in this.DefaultParameters.Where(p => p.Name == MFWSClient.AuthorizationHttpHeaderName) + foreach (var parameter in this + .DefaultParameters + .Where + ( + p => p.Name == MFWSClient.AuthorizationHttpHeaderName + || p.Name == MFWSClient.XActiveVaultHttpHeaderName + ) .ToArray()) { this.DefaultParameters.Remove(parameter); @@ -137,6 +148,9 @@ protected virtual void ClearAuthenticationToken() this.CookieContainer.Add(this.BaseUrl, new Cookie(cookie.Name, cookie.Value, cookie.Path, cookie.Domain)); } } + + // Ensure that the active vault is stored. + this.AddDefaultHeader(MFWSClient.XActiveVaultHttpHeaderName, vaultId.ToString("B")); } /// diff --git a/MFaaP.MFWSClient/MFaaP.MFWSClient.csproj b/MFaaP.MFWSClient/MFaaP.MFWSClient.csproj index 2101b5a..dd888a1 100644 --- a/MFaaP.MFWSClient/MFaaP.MFWSClient.csproj +++ b/MFaaP.MFWSClient/MFaaP.MFWSClient.csproj @@ -14,7 +14,7 @@ - 1.2.3-alpha + 1.2.4-alpha M-Files Corporation Sample .NET wrapper for the M-Files Web Service. Not designed for production use. Copyright (c) 2020 onwards, M-Files Corporation diff --git a/current/MFaaP.MFWSClient.1.2.3-alpha.nupkg b/current/MFaaP.MFWSClient.1.2.3-alpha.nupkg deleted file mode 100644 index 94e98bb..0000000 Binary files a/current/MFaaP.MFWSClient.1.2.3-alpha.nupkg and /dev/null differ diff --git a/current/MFaaP.MFWSClient.1.2.4-alpha.nupkg b/current/MFaaP.MFWSClient.1.2.4-alpha.nupkg new file mode 100644 index 0000000..9e790b7 Binary files /dev/null and b/current/MFaaP.MFWSClient.1.2.4-alpha.nupkg differ