{"action":"closed","issue":{"url":"https://api.github.com/repos/NancyFx/Nancy/issues/2204","labels_url":"https://api.github.com/repos/NancyFx/Nancy/issues/2204/labels{/name}","comments_url":"https://api.github.com/repos/NancyFx/Nancy/issues/2204/comments","events_url":"https://api.github.com/repos/NancyFx/Nancy/issues/2204/events","html_url":"https://github.com/NancyFx/Nancy/issues/2204","id":129527434,"number":2204,"title":"Microsoft.Owin replaces + in cookies with a single space.","user":{"login":"psibernetic","id":621605,"avatar_url":"https://avatars.githubusercontent.com/u/621605?v=3","gravatar_id":"","url":"https://api.github.com/users/psibernetic","html_url":"https://github.com/psibernetic","followers_url":"https://api.github.com/users/psibernetic/followers","following_url":"https://api.github.com/users/psibernetic/following{/other_user}","gists_url":"https://api.github.com/users/psibernetic/gists{/gist_id}","starred_url":"https://api.github.com/users/psibernetic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psibernetic/subscriptions","organizations_url":"https://api.github.com/users/psibernetic/orgs","repos_url":"https://api.github.com/users/psibernetic/repos","events_url":"https://api.github.com/users/psibernetic/events{/privacy}","received_events_url":"https://api.github.com/users/psibernetic/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-01-28T18:01:31Z","updated_at":"2016-01-30T10:45:40Z","closed_at":"2016-01-30T10:45:40Z","body":"This caused me a massive headache when dealing with base64 encoded cookies from FAM/SAM (Ws-Federation in ASP.NET).\r\n\r\nI found the specific line of code that does the replacement. I just wanted to get your opinion on including a heads-up in the OWIN hosting of the docs and if it is as nasty of a practice as I think it is?\r\n\r\n[OwinHelpers.cs](http://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin/Infrastructure/OwinHelpers.cs)\r\n```csharp\r\ninternal static void ParseDelimited(string text, char[] delimiters,\r\n    Action<string, string, object> callback, object state)\r\n```\r\nContains:\r\n```csharp\r\nstring name = text.Substring(scanIndex, equalIndex - scanIndex);\r\nstring value = text.Substring(equalIndex + 1, delimiterIndex - equalIndex - 1);\r\ncallback(\r\n    Uri.UnescapeDataString(name.Replace('+', ' ')),\r\n    Uri.UnescapeDataString(value.Replace('+', ' ')), \r\n    state);\r\n```"}}