ASP.NET отправляет файлы cookie в браузер клиента - PullRequest
1 голос
/ 02 июня 2011

Я интегрирую единый вход в 2 приложения ASP.Net. В этом отношении у меня есть веб-сервис, который вызывается основным приложением. когда пользователь входит в систему. эта веб-служба аутентифицирует пользователя во втором приложении и возвращает файлы cookie для аутентификации, которые мне нужно доставить в браузер клиента, чтобы он мог свободно перемещаться и входить в оба приложения.

Я планировал использовать HttpContext.Current.Response.Cookies.Add (cookie) для доставки новых файлов cookie, но, похоже, это не работает, поскольку файлы cookie не добавляются что же когда-либо ...

Есть идеи, что может пойти не так?

вот мой код:

var service = new localhost.UserManagement();
service.CookieContainer = new CookieContainer();
if (service.AuthenticateUser("test@user.pt", "test"))
{ 
    var collection = service.CookieContainer.GetCookies(new Uri("http://localhost"));
    foreach (Cookie item in collection)
    {
        HttpContext.Current.Response.Cookies.Add(CookieConverter(item));
    }
    HttpContext.Current.Response.Flush();
    return true;
}

return false;

Примечание: CookieConverter (элемент) используется для преобразования полученного мной объекта Cookie в HttpCookie

Спасибо


private HttpCookie CookieConverter(Cookie cookie)
        {
            var result = new HttpCookie(cookie.Name);

            result.Value = cookie.Value;
            result.Domain = cookie.Domain;
            result.Expires = cookie.Expires;
            result.Path = cookie.Path;
            result.Secure = cookie.Secure;
            result.HttpOnly = cookie.HttpOnly;

            return result;
        }

1 Ответ

0 голосов
/ 02 июня 2011

Вы должны проверить:

  • коллекция пуста? Не могли бы вы установить braeakpoint и проверить коллекцию?
  • где находится этот код? (страница ASPX, веб-служба, обработчик http?)
  • попробуйте создать минималистичный "Cookie setter", который просто добавит простое cookie любым способом
...