| File: Security\SecurityUtilsTest.cs | Web Access |
| Project: src\src\System.ServiceModel.Primitives\tests\System.ServiceModel.Primitives.Tests.csproj (System.ServiceModel.Primitives.Tests) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.Net; using System.Reflection; using System.ServiceModel.Security; using Infrastructure.Common; using Xunit; public static class SecurityUtilsTest { [WcfFact] public static void FixNetworkCredential_AppContext_EnableLegacyUpnUsernameFix() { Type t = Assembly.GetAssembly(typeof(WindowsClientCredential)) .GetType(typeof(WindowsClientCredential).Namespace + ".SecurityUtils"); MethodInfo method = t.GetMethod("FixNetworkCredential", BindingFlags.NonPublic | BindingFlags.Static, null, new[] { typeof(NetworkCredential).MakeByRefType() }, null); FieldInfo f = t.GetField("s_enableLegacyUpnUsernameFix", BindingFlags.Static | BindingFlags.NonPublic); //default var credential = new NetworkCredential("user@domain.com", "password"); var parameters = new object[] { credential }; method.Invoke(null, parameters); credential = (NetworkCredential)parameters[0]; Assert.NotNull(credential); Assert.Equal("user@domain.com", credential.UserName); Assert.Equal("password", credential.Password); Assert.Equal(string.Empty, credential.Domain); //switch on f.SetValue(t, true); credential = new NetworkCredential("user@domain.com", "password"); parameters = new object[] { credential }; method.Invoke(null, parameters); credential = (NetworkCredential)parameters[0]; Assert.NotNull(credential); Assert.Equal("user", credential.UserName); Assert.Equal("password", credential.Password); Assert.Equal("domain.com", credential.Domain); //switch off f.SetValue(t, false); credential = new NetworkCredential("user@domain.com", "password"); parameters = new object[] { credential }; method.Invoke(null, parameters); credential = (NetworkCredential)parameters[0]; Assert.NotNull(credential); Assert.Equal("user@domain.com", credential.UserName); Assert.Equal("password", credential.Password); Assert.Equal(string.Empty, credential.Domain); } }