Я пытаюсь аутентифицировать пользователя в API через заголовок токена до https://www.test.com
Я получаю ответ с ключом заголовка:
"Set-Cookie="csrftoken=hOmAjkdBzlaYtNLN4w0YivRjPfZT0xpfl1I3cA933YNE0mZfflRV7NwzdrEjFfni; expires=Thu, 09-Apr-2020 18:54:25 GMT; Max-Age=31449600; Path=/,sessionid=kvplyt7poch4n34hqjvasohzqhgrtv0u; expires=Thu, 25-Apr-2019 18:54:25 GMT; HttpOnly; Max-Age=1209600; Path=/"
Я пытаюсь создать новый файл cookie в браузере для сайта https://www.test.com с полученным содержимым (csrftoken, exires, domain и т. Д.).
Чтобы при открытии нового окна файл cookie уже существовал и пользователь проходил аутентификацию.
[WebMethod]
public string authenticateUser(string token) {
//Create a request for the URL.
var request = WebRequest.Create("https://www.test.com");
var myHttpWebRequest = (HttpWebRequest)request;
string response1 = "";
myHttpWebRequest.ContentType = "text/html";
myHttpWebRequest.Method = "GET";
myHttpWebRequest.Headers.Add("token", token);
try {
using (WebResponse resp = myHttpWebRequest.GetResponse()) {
if (resp == null)
new Exception("Response is null");
System.IO.Stream test2 = resp.GetResponseStream();
StreamReader reader = new StreamReader(resp.GetResponseStream());
string test1 = reader.ToString();
response1 = reader.ReadToEnd();
//Some parsing to retrieve the header value I want to set
//Actual cookie generation
HttpCookie csrftoken = new HttpCookie("csrftoken", "MzsasdsIb2DtR1h3Tzwje6Mgb0cdsdVjDCYZAsdsdRBmsds6ds7ubZgdsds4r6Jl99hysddssbSNG3");
csrftoken.Expires = DateTime.Now.AddYears(1);
csrftoken.Path = "/";
csrftoken.Domain = ".test";
HttpContext.Current.Response.Cookies.Add(csrftoken);
}
}
catch (Exception ex) {
return ex.Message;
}
return "OK";
}
К сожалению, когда я завершаю все это, cookie сохраняется для localhost, а не URI целевого API.
В любом случае можно ли добиться этого с помощью простого веб-сервиса asmx.cs и / или ванильного сценария JavaScript для IE 11?