Added super hacky RawOwinHttpContext for K profile.
This commit is contained in:
parent
44de535930
commit
724897d0eb
|
|
@ -29,6 +29,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.PipelineCo
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Abstractions.Owin.net45", "src\Microsoft.AspNet.Abstractions.Owin\Microsoft.AspNet.Abstractions.Owin.net45.csproj", "{E6B7056F-547E-4B96-9E58-858DDDAE75D3}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Abstractions.Owin.net45", "src\Microsoft.AspNet.Abstractions.Owin\Microsoft.AspNet.Abstractions.Owin.net45.csproj", "{E6B7056F-547E-4B96-9E58-858DDDAE75D3}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNet.Abstractions.Owin.k10", "src\Microsoft.AspNet.Abstractions.Owin\Microsoft.AspNet.Abstractions.Owin.k10.csproj", "{C5C104A4-EE38-4D77-AC77-DF599FD5443A}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
|
@ -79,6 +81,10 @@ Global
|
||||||
{E6B7056F-547E-4B96-9E58-858DDDAE75D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{E6B7056F-547E-4B96-9E58-858DDDAE75D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{E6B7056F-547E-4B96-9E58-858DDDAE75D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{E6B7056F-547E-4B96-9E58-858DDDAE75D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{E6B7056F-547E-4B96-9E58-858DDDAE75D3}.Release|Any CPU.Build.0 = Release|Any CPU
|
{E6B7056F-547E-4B96-9E58-858DDDAE75D3}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C5C104A4-EE38-4D77-AC77-DF599FD5443A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C5C104A4-EE38-4D77-AC77-DF599FD5443A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C5C104A4-EE38-4D77-AC77-DF599FD5443A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C5C104A4-EE38-4D77-AC77-DF599FD5443A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
@ -95,5 +101,6 @@ Global
|
||||||
{E31CF247-FDA9-4007-B194-A7DBAC18532C} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
{E31CF247-FDA9-4007-B194-A7DBAC18532C} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
||||||
{659F2FD7-D44F-4953-A69D-94AF3D41BA21} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
{659F2FD7-D44F-4953-A69D-94AF3D41BA21} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
||||||
{E6B7056F-547E-4B96-9E58-858DDDAE75D3} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
{E6B7056F-547E-4B96-9E58-858DDDAE75D3} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
||||||
|
{C5C104A4-EE38-4D77-AC77-DF599FD5443A} = {D38DDB2B-1138-4F45-8A6A-9499E880F620}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
#if NET45
|
||||||
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Abstractions;
|
using Microsoft.AspNet.Abstractions;
|
||||||
|
|
@ -6,13 +7,13 @@ using Microsoft.Owin;
|
||||||
|
|
||||||
namespace Microsoft.AspNet.Abstractions.Owin
|
namespace Microsoft.AspNet.Abstractions.Owin
|
||||||
{
|
{
|
||||||
public class OwinHttpContext : HttpContext
|
public class MicrosoftOwinHttpContext : HttpContext
|
||||||
{
|
{
|
||||||
private readonly IOwinContext _context;
|
private readonly IOwinContext _context;
|
||||||
private readonly HttpRequest _request;
|
private readonly HttpRequest _request;
|
||||||
private readonly HttpResponse _response;
|
private readonly HttpResponse _response;
|
||||||
|
|
||||||
public OwinHttpContext(IOwinContext context)
|
public MicrosoftOwinHttpContext(IOwinContext context)
|
||||||
{
|
{
|
||||||
_context = context;
|
_context = context;
|
||||||
_request = new OwinHttpRequest(this, context.Request);
|
_request = new OwinHttpRequest(this, context.Request);
|
||||||
|
|
@ -173,3 +174,4 @@ namespace Microsoft.AspNet.Abstractions.Owin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
#if NET45
|
||||||
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Microsoft.AspNet.Abstractions;
|
using Microsoft.AspNet.Abstractions;
|
||||||
using Microsoft.AspNet.Abstractions.Owin;
|
using Microsoft.AspNet.Abstractions.Owin;
|
||||||
|
|
@ -11,10 +12,11 @@ namespace Owin
|
||||||
{
|
{
|
||||||
app.Run(context =>
|
app.Run(context =>
|
||||||
{
|
{
|
||||||
var httpContext = new OwinHttpContext(context);
|
var httpContext = new MicrosoftOwinHttpContext(context);
|
||||||
|
|
||||||
return handler(httpContext);
|
return handler(httpContext);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
@ -0,0 +1,199 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNet.Abstractions.Owin
|
||||||
|
{
|
||||||
|
public class RawOwinHttpContext : HttpContext
|
||||||
|
{
|
||||||
|
private readonly HttpRequest _request;
|
||||||
|
private readonly HttpResponse _response;
|
||||||
|
|
||||||
|
public RawOwinHttpContext(IDictionary<string, object> env)
|
||||||
|
{
|
||||||
|
_request = new RawOwinHttpRequest(this, env);
|
||||||
|
_response = new RawOwinHttpResponse(this, env);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override object GetInterface(Type type)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override HttpRequest Request
|
||||||
|
{
|
||||||
|
get { return _request; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override HttpResponse Response
|
||||||
|
{
|
||||||
|
get { return _response; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void SetInterface(Type type, object instance)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RawOwinHttpRequest : HttpRequest
|
||||||
|
{
|
||||||
|
private HttpContext _context;
|
||||||
|
private readonly IDictionary<string, object> _env;
|
||||||
|
|
||||||
|
public RawOwinHttpRequest(HttpContext context, IDictionary<string, object> env)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
_env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Stream Body
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (Stream)_env["owin.ResponseBody"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_env["owin.ResponseBody"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override HttpContext HttpContext
|
||||||
|
{
|
||||||
|
get { return _context; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override PathString Path
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new PathString((string)_env["owin.RequestPath"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_env["owin.RequestPath"] = value.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override PathString PathBase
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new PathString((string)_env["owin.RequestPathBase"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_env["owin.RequestPathBase"] = value.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override QueryString QueryString
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new QueryString((string)_env["owin.RequestQueryString"]);
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_env["owin.RequestQueryString"] = value.Value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Uri Uri
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
// TODO: Implement this sometime
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RawOwinHttpResponse : HttpResponse
|
||||||
|
{
|
||||||
|
private readonly HttpContext _context;
|
||||||
|
private readonly IDictionary<string, object> _env;
|
||||||
|
|
||||||
|
public RawOwinHttpResponse(HttpContext context, IDictionary<string, object> env)
|
||||||
|
{
|
||||||
|
_context = context;
|
||||||
|
_env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Stream Body
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (Stream)_env["owin.ResponseBody"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_env["owin.ResponseBody"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string ContentType
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return GetHeader("Content-Type");
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
SetHeader("Content-Type", value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override HttpContext HttpContext
|
||||||
|
{
|
||||||
|
get { return _context; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int StatusCode
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return (int)_env["owin.ResponseStatusCode"];
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_env["owin.ResponseStatusCode"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override Task WriteAsync(string data)
|
||||||
|
{
|
||||||
|
var bytes = Encoding.UTF8.GetBytes(data);
|
||||||
|
|
||||||
|
return Body.WriteAsync(bytes, 0, bytes.Length);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetHeader(string name, string value)
|
||||||
|
{
|
||||||
|
var headers = (IDictionary<string, string[]>)_env["owin.ResponseHeaders"];
|
||||||
|
|
||||||
|
headers[name] = new[] { value };
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetHeader(string name)
|
||||||
|
{
|
||||||
|
var headers = (IDictionary<string, string[]>)_env["owin.ResponseHeaders"];
|
||||||
|
|
||||||
|
string[] values;
|
||||||
|
if (headers.TryGetValue(name, out values) && values.Length > 0)
|
||||||
|
{
|
||||||
|
return values[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,15 @@
|
||||||
{
|
{
|
||||||
"version": "0.1-alpha-*",
|
"version": "0.1-alpha-*",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Owin": "1.0",
|
|
||||||
"Microsoft.Owin": "2.1.0",
|
|
||||||
"Microsoft.AspNet.Abstractions": ""
|
"Microsoft.AspNet.Abstractions": ""
|
||||||
},
|
},
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"net45": { }
|
"net45": {
|
||||||
|
"dependencies": {
|
||||||
|
"Owin": "1.0",
|
||||||
|
"Microsoft.Owin": "2.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"k10": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue