Я хотел бы создать службу демо-входа в веб-api и настроить cookie на ответ. Как мне это сделать? Или есть ли лучший способ сделать авторизацию?Как настроить ответный файл cookie на HttpReponseMessage?
ответ
Добавить ссылку на System.Net.Http.Formatting.dll
и использовать метод AddCookies
расширения, определенный в HttpResponseHeadersExtensions
классе.
Здесь a blog post describing this approach и MSDN topic.
Если сборка не вариант для вас, вот мой старший ответ от до этого был вариант:
Пожилым Ответ следует
Я предпочитаю подход, который остается в пределах области HttpResponseMessage
без кровотечения в HttpContext, который не в качестве единицы проверяемого и не всегда применяется в зависимости от хоста:
/// <summary>
/// Adds a Set-Cookie HTTP header for the specified cookie.
/// WARNING: support for cookie properties is currently VERY LIMITED.
/// </summary>
internal static void SetCookie(this HttpResponseHeaders headers, Cookie cookie) {
Requires.NotNull(headers, "headers");
Requires.NotNull(cookie, "cookie");
var cookieBuilder = new StringBuilder(HttpUtility.UrlEncode(cookie.Name) + "=" + HttpUtility.UrlEncode(cookie.Value));
if (cookie.HttpOnly) {
cookieBuilder.Append("; HttpOnly");
}
if (cookie.Secure) {
cookieBuilder.Append("; Secure");
}
headers.Add("Set-Cookie", cookieBuilder.ToString());
}
Затем вы можете включить кук в ответ например:
HttpResponseMessage response;
response.Headers.SetCookie(new Cookie("name", "value"));
Согласен, это выглядит как лучшая альтернатива. Изменены принятые ответы для руководства пользователями в будущем. –
Возможно ли, что это уже не ответ? Единственный способ, которым я нашел эту DLL, - это Nuget, и он явно указывает, что это для WebApi.Client выше 2.0 и ниже 2.1, поэтому этот ответ был для WebApi 2. Теперь мы с ASP.NET 4 и I больше не может найти эту dll. –
@ IsaacLlopis Я предполагаю, что они перенесли его из расширения dll в ядро. –
Вы можете добавить файл cookie в коллекцию HttpContext.Current.Response.Cookies.
var cookie = new HttpCookie("MyCookie", DateTime.Now.ToLongTimeString());
HttpContext.Current.Response.Cookies.Add(cookie);
Спасибо, что я хотел и должен был подумать о себе. Но на самом деле ожидалось, что это будет доступно на 'HttpResponseMessage'. –
Это было мое первое предположение, но по какой-то причине это не так. Это, конечно, было бы лучше для тестовых возможностей. – Maurice
Этот ответ противоречит способу использования WebAPI. Вы не должны ссылаться на HttpContext.Current из WebAPI, поскольку это не будет существовать, если вы сами принимаете. В бета-битх отсутствовало множество вспомогательных утилит вроде этого. RC добавил метод расширения AddCookies() в HttpResponseMessage.Headers, который вы должны использовать вместо этого. – Andrew
- 1. настроить ответный навигация навигатор
- 2. Как настроить реферальный файл cookie в Symfony2?
- 3. Как настроить gitkit cookie
- 4. NightmareJS: как настроить cookie?
- 5. Браузер не устанавливает cookie, несмотря на ответный заголовок
- 6. Настроить файл cookie для посещения страницы
- 7. Как настроить cookie в экспресс?
- 8. Как настроить безопасный файл cookie, а затем прочитать его содержимое?
- 9. Как настроить пакетный файл на ...?
- 10. NodeJS Ответный
- 11. Сохранить Cookie как файл
- 12. Как подключить файл cookie?
- 13. Как ограничить файл cookie PHPSESSID на https?
- 14. Как создать файл cookie на сайте Google?
- 15. Как подавить запрос на файл cookie
- 16. Как удалить файл cookie на определенной странице?
- 17. Как убить файл .ASPXAUTH cookie на сервере?
- 18. Файл cookie уровня домена на нескольких доменах
- 19. Javascript Ответный
- 20. C3 Графы На Load Ответный
- 21. Ответный ответ на другую тему
- 22. Можно ли настроить файл cookie для конкретной страницы?
- 23. Pyramid: как настроить cookie без рендера?
- 24. Как настроить заголовок cookie с угловым 2
- 25. Как сохранить пользовательский файл cookie
- 26. Как правильно использовать файл cookie
- 27. Как создать отказоустойчивый файл cookie
- 28. Как настроить проверку подлинности файлов cookie на Cloudant?
- 29. HAproxy 1.5.8 Как настроить липкость на основе файлов cookie?
- 30. Как настроить приложение на доступ к субдомену cookie?
Не похоже, что вы можете установить cookie на HttpResponseMessage. Посмотрите эту тему, может быть, это поможет http://stackoverflow.com/questions/5463431/setting-cookies-within-a-wcf-service –