#306 Consistently use WindowsPrincipal
This commit is contained in:
parent
d103bdb1ba
commit
c328e22699
|
|
@ -4,6 +4,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Principal;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http.Features.Authentication;
|
||||
using Microsoft.Extensions.Internal;
|
||||
|
|
@ -25,7 +26,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys
|
|||
|
||||
public Task AuthenticateAsync(AuthenticateContext context)
|
||||
{
|
||||
var identity = (ClaimsIdentity)_requestContext.User?.Identity;
|
||||
var identity = _requestContext.User?.Identity;
|
||||
|
||||
foreach (var authType in ListEnabledAuthSchemes())
|
||||
{
|
||||
|
|
@ -35,7 +36,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys
|
|||
if (identity != null && identity.IsAuthenticated
|
||||
&& string.Equals(authScheme, identity.AuthenticationType, StringComparison.Ordinal))
|
||||
{
|
||||
context.Authenticated(new ClaimsPrincipal(identity), properties: null, description: GetDescription(authScheme));
|
||||
context.Authenticated(_requestContext.User, properties: null, description: null);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys
|
|||
return false;
|
||||
}
|
||||
|
||||
internal ClaimsPrincipal GetUser()
|
||||
internal WindowsPrincipal GetUser()
|
||||
{
|
||||
var requestInfo = NativeRequestV2->pRequestInfo;
|
||||
var infoCount = NativeRequestV2->RequestInfoCount;
|
||||
|
|
@ -228,7 +228,8 @@ namespace Microsoft.AspNetCore.Server.HttpSys
|
|||
GetAuthTypeFromRequest(info->pInfo->AuthType).ToString()));
|
||||
}
|
||||
}
|
||||
return new ClaimsPrincipal(new ClaimsIdentity()); // Anonymous / !IsAuthenticated
|
||||
|
||||
return new WindowsPrincipal(WindowsIdentity.GetAnonymous()); // Anonymous / !IsAuthenticated
|
||||
}
|
||||
|
||||
private static AuthenticationSchemes GetAuthTypeFromRequest(HttpApi.HTTP_REQUEST_AUTH_TYPE input)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ using System.IO;
|
|||
using System.Net;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Cryptography.X509Certificates;
|
||||
using System.Security.Principal;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
|
@ -214,7 +215,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys
|
|||
// HTTP.Sys allows you to upgrade anything to opaque unless content-length > 0 or chunked are specified.
|
||||
internal bool IsUpgradable => !HasEntityBody && ComNetOS.IsWin8orLater;
|
||||
|
||||
internal ClaimsPrincipal User { get; }
|
||||
internal WindowsPrincipal User { get; }
|
||||
|
||||
// Populates the client certificate. The result may be null if there is no client cert.
|
||||
// TODO: Does it make sense for this to be invoked multiple times (e.g. renegotiate)? Client and server code appear to
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using System.Diagnostics;
|
|||
using System.IO;
|
||||
using System.Security.Authentication.ExtendedProtection;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Principal;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
|
|
@ -39,7 +40,7 @@ namespace Microsoft.AspNetCore.Server.HttpSys
|
|||
|
||||
public Response Response { get; }
|
||||
|
||||
public ClaimsPrincipal User => Request.User;
|
||||
public WindowsPrincipal User => Request.User;
|
||||
|
||||
public CancellationToken DisconnectToken
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue