title: OwinContext.Request multi-part/form-data parsing?
body: <p>Is there an easy way to parse <em>multi-part/form-data</em> information from an  <strong>OwinContext.Request</strong> instance?</p>
  
  <p>I know how to do this using <strong>HttpContext.Current.Request.Form.Get()</strong>, but I'm not sure if I really want to be doing that in the Owin pipeline.</p>
  
  <p>I know I can use <strong>.ReadFormAsync()</strong> to get an <strong>IFormCollection</strong>, which appears to work fine for standard submits, but with a <em>multi-part/form-data</em> post the boundary value, content type, and variable name are all getting rolled into the key. So I can't just do <strong>formVars.Get("VariableName")</strong>, because it's not the variable name, it's a composite. Seems like it shouldn't be doing that though... right?</p>
  
  <pre><code>public AppFunc PreAuthMiddleware(AppFunc next) {
    AppFunc appFunc = async (IDictionary&lt;string, object&gt; environment) =&gt; {
      IOwinContext context = new OwinContext(environment);
      IFormCollection formVars = await context.Request.ReadFormAsync();
  
      ... Now What ...
  
      await next.Invoke(environment);
    };
    return appFunc;
  }
  </code></pre>
  
  <p>I was hoping that accessing form variables and file data would be as easy as it was with <strong>HttpContext</strong>, but it seems there may be more work to be done.</p>
  
  <p>If anyone has any insight on this, please let me know. Otherwise I'll probably just end up hacking the key names together if I see the main content-type is <em>multi-part/form-data</em>.</p>