Add AuthenticationManager.HttpContext. Clean up contructors.

This commit is contained in:
Chris R 2016-02-12 15:26:23 -08:00
parent c7029a1bd0
commit d4e72564c7
6 changed files with 25 additions and 19 deletions

View File

@ -21,11 +21,11 @@ namespace SampleApp
{ {
if (_pooledHttpRequest != null) if (_pooledHttpRequest != null)
{ {
_pooledHttpRequest.Initialize(this, Features); _pooledHttpRequest.Initialize(this);
return _pooledHttpRequest; return _pooledHttpRequest;
} }
return new DefaultHttpRequest(this, Features); return new DefaultHttpRequest(this);
} }
protected override void UninitializeHttpRequest(HttpRequest instance) protected override void UninitializeHttpRequest(HttpRequest instance)
@ -38,11 +38,11 @@ namespace SampleApp
{ {
if (_pooledHttpResponse != null) if (_pooledHttpResponse != null)
{ {
_pooledHttpResponse.Initialize(this, Features); _pooledHttpResponse.Initialize(this);
return _pooledHttpResponse; return _pooledHttpResponse;
} }
return new DefaultHttpResponse(this, Features); return new DefaultHttpResponse(this);
} }
protected override void UninitializeHttpResponse(HttpResponse instance) protected override void UninitializeHttpResponse(HttpResponse instance)

View File

@ -16,6 +16,8 @@ namespace Microsoft.AspNetCore.Http.Authentication
/// </summary> /// </summary>
public const string AutomaticScheme = "Automatic"; public const string AutomaticScheme = "Automatic";
public abstract HttpContext HttpContext { get; }
public abstract IEnumerable<AuthenticationDescription> GetAuthenticationSchemes(); public abstract IEnumerable<AuthenticationDescription> GetAuthenticationSchemes();
public abstract Task AuthenticateAsync(AuthenticateContext context); public abstract Task AuthenticateAsync(AuthenticateContext context);

View File

@ -14,16 +14,18 @@ namespace Microsoft.AspNetCore.Http.Authentication.Internal
{ {
public class DefaultAuthenticationManager : AuthenticationManager public class DefaultAuthenticationManager : AuthenticationManager
{ {
private HttpContext _context;
private FeatureReferences<IHttpAuthenticationFeature> _features; private FeatureReferences<IHttpAuthenticationFeature> _features;
public DefaultAuthenticationManager(IFeatureCollection features) public DefaultAuthenticationManager(HttpContext context)
{ {
Initialize(features); Initialize(context);
} }
public virtual void Initialize(IFeatureCollection features) public virtual void Initialize(HttpContext context)
{ {
_features = new FeatureReferences<IHttpAuthenticationFeature>(features); _context = context;
_features = new FeatureReferences<IHttpAuthenticationFeature>(context.Features);
} }
public virtual void Uninitialize() public virtual void Uninitialize()
@ -31,6 +33,8 @@ namespace Microsoft.AspNetCore.Http.Authentication.Internal
_features = default(FeatureReferences<IHttpAuthenticationFeature>); _features = default(FeatureReferences<IHttpAuthenticationFeature>);
} }
public override HttpContext HttpContext => _context;
private IHttpAuthenticationFeature HttpAuthenticationFeature => private IHttpAuthenticationFeature HttpAuthenticationFeature =>
_features.Fetch(ref _features.Cache, f => new HttpAuthenticationFeature()); _features.Fetch(ref _features.Cache, f => new HttpAuthenticationFeature());

View File

@ -173,16 +173,16 @@ namespace Microsoft.AspNetCore.Http.Internal
} }
protected virtual HttpRequest InitializeHttpRequest() => new DefaultHttpRequest(this, Features); protected virtual HttpRequest InitializeHttpRequest() => new DefaultHttpRequest(this);
protected virtual void UninitializeHttpRequest(HttpRequest instance) { } protected virtual void UninitializeHttpRequest(HttpRequest instance) { }
protected virtual HttpResponse InitializeHttpResponse() => new DefaultHttpResponse(this, Features); protected virtual HttpResponse InitializeHttpResponse() => new DefaultHttpResponse(this);
protected virtual void UninitializeHttpResponse(HttpResponse instance) { } protected virtual void UninitializeHttpResponse(HttpResponse instance) { }
protected virtual ConnectionInfo InitializeConnectionInfo() => new DefaultConnectionInfo(Features); protected virtual ConnectionInfo InitializeConnectionInfo() => new DefaultConnectionInfo(Features);
protected virtual void UninitializeConnectionInfo(ConnectionInfo instance) { } protected virtual void UninitializeConnectionInfo(ConnectionInfo instance) { }
protected virtual AuthenticationManager InitializeAuthenticationManager() => new DefaultAuthenticationManager(Features); protected virtual AuthenticationManager InitializeAuthenticationManager() => new DefaultAuthenticationManager(this);
protected virtual void UninitializeAuthenticationManager(AuthenticationManager instance) { } protected virtual void UninitializeAuthenticationManager(AuthenticationManager instance) { }
protected virtual WebSocketManager InitializeWebSocketManager() => new DefaultWebSocketManager(Features); protected virtual WebSocketManager InitializeWebSocketManager() => new DefaultWebSocketManager(Features);

View File

@ -16,15 +16,15 @@ namespace Microsoft.AspNetCore.Http.Internal
private HttpContext _context; private HttpContext _context;
private FeatureReferences<FeatureInterfaces> _features; private FeatureReferences<FeatureInterfaces> _features;
public DefaultHttpRequest(HttpContext context, IFeatureCollection features) public DefaultHttpRequest(HttpContext context)
{ {
Initialize(context, features); Initialize(context);
} }
public virtual void Initialize(HttpContext context, IFeatureCollection features) public virtual void Initialize(HttpContext context)
{ {
_context = context; _context = context;
_features = new FeatureReferences<FeatureInterfaces>(features); _features = new FeatureReferences<FeatureInterfaces>(context.Features);
} }
public virtual void Uninitialize() public virtual void Uninitialize()

View File

@ -15,15 +15,15 @@ namespace Microsoft.AspNetCore.Http.Internal
private HttpContext _context; private HttpContext _context;
private FeatureReferences<FeatureInterfaces> _features; private FeatureReferences<FeatureInterfaces> _features;
public DefaultHttpResponse(HttpContext context, IFeatureCollection features) public DefaultHttpResponse(HttpContext context)
{ {
Initialize(context, features); Initialize(context);
} }
public virtual void Initialize(HttpContext context, IFeatureCollection features) public virtual void Initialize(HttpContext context)
{ {
_context = context; _context = context;
_features = new FeatureReferences<FeatureInterfaces>(features); _features = new FeatureReferences<FeatureInterfaces>(context.Features);
} }
public virtual void Uninitialize() public virtual void Uninitialize()