parent
4fa5a228cf
commit
639e3dd07b
|
|
@ -1,10 +1,8 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.0</TargetFramework>
|
<TargetFramework>netcoreapp3.0</TargetFramework>
|
||||||
<IsWindowsOnlyTest>true</IsWindowsOnlyTest>
|
<IsWindowsOnlyTest>true</IsWindowsOnlyTest>
|
||||||
<!-- Disabled because of https://github.com/aspnet/AspNetCore/issues/11009. Tests don't run on Win7 or Win8 correctly. -->
|
|
||||||
<BuildHelixPayload>false</BuildHelixPayload>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
@ -20,9 +18,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Update="testCert.pfx">
|
<Content Include="negotiateAuthCert.pfx" CopyToOutputDirectory="PreserveNewest" />
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -35,8 +35,38 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate
|
||||||
new object[] { Http2Version },
|
new object[] { Http2Version },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[ConditionalFact]
|
||||||
|
// Only test HTTP/1.1, ALPN is not supported on Win7
|
||||||
|
public async Task Anonymous_NoChallenge_NoOps_Win7()
|
||||||
|
{
|
||||||
|
using var host = await CreateHostAsync();
|
||||||
|
using var client = CreateSocketHttpClient(host);
|
||||||
|
client.DefaultRequestVersion = Http11Version;
|
||||||
|
|
||||||
|
var result = await client.GetAsync("/Anonymous1");
|
||||||
|
Assert.Equal(HttpStatusCode.OK, result.StatusCode);
|
||||||
|
Assert.False(result.Headers.Contains(HeaderNames.WWWAuthenticate));
|
||||||
|
Assert.Equal(Http11Version, result.Version);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ConditionalFact]
|
||||||
|
// Only test HTTP/1.1, ALPN is not supported on Win7
|
||||||
|
public async Task Anonymous_Challenge_401Negotiate_Win7()
|
||||||
|
{
|
||||||
|
using var host = await CreateHostAsync();
|
||||||
|
// WinHttpHandler can't disable default credentials on localhost, use SocketHttpHandler.
|
||||||
|
using var client = CreateSocketHttpClient(host);
|
||||||
|
client.DefaultRequestVersion = Http11Version;
|
||||||
|
|
||||||
|
var result = await client.GetAsync("/Authenticate");
|
||||||
|
Assert.Equal(HttpStatusCode.Unauthorized, result.StatusCode);
|
||||||
|
Assert.Equal("Negotiate", result.Headers.WwwAuthenticate.ToString());
|
||||||
|
Assert.Equal(Http11Version, result.Version);
|
||||||
|
}
|
||||||
|
|
||||||
[ConditionalTheory]
|
[ConditionalTheory]
|
||||||
[MemberData(nameof(Http11And2))]
|
[MemberData(nameof(Http11And2))]
|
||||||
|
[MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win81, SkipReason = "Windows only supports ALPN on 8.1 and later.")]
|
||||||
public async Task Anonymous_NoChallenge_NoOps(Version version)
|
public async Task Anonymous_NoChallenge_NoOps(Version version)
|
||||||
{
|
{
|
||||||
using var host = await CreateHostAsync();
|
using var host = await CreateHostAsync();
|
||||||
|
|
@ -51,6 +81,7 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate
|
||||||
|
|
||||||
[ConditionalTheory]
|
[ConditionalTheory]
|
||||||
[MemberData(nameof(Http11And2))]
|
[MemberData(nameof(Http11And2))]
|
||||||
|
[MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win81, SkipReason = "Windows only supports ALPN on 8.1 and later.")]
|
||||||
public async Task Anonymous_Challenge_401Negotiate(Version version)
|
public async Task Anonymous_Challenge_401Negotiate(Version version)
|
||||||
{
|
{
|
||||||
using var host = await CreateHostAsync();
|
using var host = await CreateHostAsync();
|
||||||
|
|
@ -148,6 +179,7 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate
|
||||||
[ConditionalTheory]
|
[ConditionalTheory]
|
||||||
[InlineData(false)]
|
[InlineData(false)]
|
||||||
[InlineData(true)]
|
[InlineData(true)]
|
||||||
|
[MinimumOSVersion(OperatingSystems.Windows, WindowsVersions.Win10, SkipReason = "The client only supports HTTP/2 on Win10.")]
|
||||||
public async Task RequestAfterAuth_Http2Then2Anonymous_Success(bool persistNtlm)
|
public async Task RequestAfterAuth_Http2Then2Anonymous_Success(bool persistNtlm)
|
||||||
{
|
{
|
||||||
using var host = await CreateHostAsync(options => options.PersistNtlmCredentials = persistNtlm);
|
using var host = await CreateHostAsync(options => options.PersistNtlmCredentials = persistNtlm);
|
||||||
|
|
@ -213,7 +245,7 @@ namespace Microsoft.AspNetCore.Authentication.Negotiate
|
||||||
{
|
{
|
||||||
options.Listen(IPAddress.Loopback, 0, endpoint =>
|
options.Listen(IPAddress.Loopback, 0, endpoint =>
|
||||||
{
|
{
|
||||||
endpoint.UseHttps("testCert.pfx", "testPassword");
|
endpoint.UseHttps("negotiateAuthCert.pfx", "testPassword");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
webHostBuilder.Configure(app =>
|
webHostBuilder.Configure(app =>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue