PrakashPaul Ответов: 0

Откуда a.com/search.aspx, открыть b.com/contain.aspx страница. Обходите стороной b.com/login.aspx страница по вызову API и открытию b.com/contain.aspx страница


Откуда a.com/Search.aspx, открыть b.com/Contain.aspx страница. Обходите стороной b.com/login.aspx страница по вызову API и открытию b.com/contain.aspx страница.

a.com принимаемый мной и b.com управление осуществляется каким-то внешним поставщиком.

Что я уже пробовал:

В a.com/Search.aspx страница я написал ниже код для вызова b.com вход на страницу api и возможность успешно считывать значения файлов cookie

var client = новый RestClient("http://b.com/jjweb/app?username=jj_123&пароль=XXXX");
var request = new RestRequest(Method.GET);
IRestResponse response = клиент.Выполнить(запрос);
IList<restresponsecookie> res = ответ.Cookies;

string JSessionID = строка.Пустой;
string JJSessionID = строка.Пустой;
string JJAccessToken = строка.Пустой;

JSessionID = ответ.ResponseUri.AbsolutePath.Split(';')[1].Split('=')[1].Метод toString();

по каждому элементу (RestResponseCookie пункт в РЭС)
{
если (item.Name-да.ToUpper() == "JJSESSIONID")
JJSessionID = item.Value;
еще
JJAccessToken = item.Value;
}

Система.Диагностика.Отлаживать.WriteLine("JSESSIONID={0}; JJSESSIONID={1}; JJACCESSTOKEN={2}", JSessionID, JJSessionID, JAccessToken);

Ответ.Cookies["JSESSIONID"].Value = JSessionID;
Ответ.Cookies["JSESSIONID"].Expires = DateTime.Now.AddMinutes(1);
Ответ.Cookies["JJSESSIONID"].Value = JJSessionID;
Ответ.Cookies["JJSESSIONID"].Expires = DateTime.Now.AddMinutes(1);
Ответ.Печенье["JJACCESSTOKEN"].Значение = JJAccessToken;
Ответ.Cookies["JJACCESSTOKEN"].Expires = DateTime.Now.AddMinutes(1);
Ответ.Писать("");
Ответ.Write("window.open('http://b.com/jjweb/Contain.aspx?page=ScreenHtml5&service=page&offset=0&quickrewindsec=-5&quickadvancesec=5','_blank')");
Ответ.Писать("");


Теперь я хочу открыть b.com/Contain.aspx страница, в новом окне с файлами cookie.
Пожалуйста, предложите любой код или обходной путь для архивирования этого

F-ES Sitecore

Вы не сможете сделать это в основном из соображений безопасности. Когда вы получаете доступ к странице программно, вы управляете "контейнером файлов cookie", вы можете сказать, какие cookeis отправляются, и вы можете контролировать, что происходит с файлами cookie, которые записываются обратно. Если вы хотите, чтобы страница открывалась в браузере пользователя, то браузер становится контейнером файлов cookie, и у вас больше нет контроля.

Было бы очень опасно, если бы вы могли контролировать файлы cookie пользователя для других сайтов из вашего серверного кода. Вам нужно будет изучить возможность внедрения единого входа, поскольку это решение этих проблем, но оно не является тривиальным, и это означает, что вам нужно контролировать оба сайта.

PrakashPaul

Я нашел другой способ сделать это, вызов на стороне клиента, но проблема в том, что он не работает в IE с исключением, но работает в chrome и Firefox.
//LoginUrl='http://b.com/jjweb/app?username=jj_123&пароль=XXXX'
//PlayerUrl='http://b.com/jjweb/Contain.aspx?page=ScreenHtml5&service=page&offset=0&quickrewindsec=-5&quickadvancesec=5'
функция doit(LoginUrl, PlayerUrl) {
на jQuery.поддержка.пдбс = истина;
$.Аякс({
url: LoginUrl,
тип: 'GET',
тип данных: 'script',
успех: функция (данные) {
// аварийные данные);
window.open(PlayerUrl, '_blank');
},
ошибка: функция (x, y, z) {
оповещения(х + '\н' + г + '\н' + з);
}
});
}

любые намеки на то, почему он не работает в IE, т. е. исключением является "критическая ошибка JavaScript в строке 1, в http://b.com/jjweb/app?username=jj_123&password=XXXX&_=1512059288452\n\nSCRIPT1002: синтаксическая ошибка"

Karthik_Mahalingam

использовать  Ответить  кнопка, чтобы отправить комментарии/запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

0 Ответов