На самом деле это очень просто. Для этого вы должны использовать NSMutableURLRequest
, инициализировать его с помощью NSURL
и установить любое значение пользовательского агента с помощью метода setValue:ForHTTPHeaderField:
, где поле будет User-Agent
, загрузите его на веб-просмотр. Это оно! Удачи!
Вот сообщение от специалиста по обслуживанию SWFUpload, который объясняет, как загрузить сессию из идентификатора, сохраненного в Запросе. Форма. Я предполагаю, что то же самое работало бы на компонент Yahoo.
Отметьте правовые оговорки безопасности в нижней части сообщения.
Включением файла Global.asax и следующего кода можно переопределить недостающий идентификационный cookie Сессии:
using System;
using System.Web;
public class Global_asax : System.Web.HttpApplication
{
private void Application_BeginRequest(object sender, EventArgs e)
{
/*
Fix for the Flash Player Cookie bug in Non-IE browsers.
Since Flash Player always sends the IE cookies even in FireFox
we have to bypass the cookies by sending the values as part of the POST or GET
and overwrite the cookies with the passed in values.
The theory is that at this point (BeginRequest) the cookies have not been ready by
the Session and Authentication logic and if we update the cookies here we'll get our
Session and Authentication restored correctly
*/
HttpRequest request = HttpContext.Current.Request;
try
{
string sessionParamName = "ASPSESSID";
string sessionCookieName = "ASP.NET_SESSIONID";
string sessionValue = request.Form[sessionParamName] ?? request.QueryString[sessionParamName];
if (sessionValue != null)
{
UpdateCookie(sessionCookieName, sessionValue);
}
}
catch (Exception ex)
{
// TODO: Add logging here.
}
try
{
string authParamName = "AUTHID";
string authCookieName = FormsAuthentication.FormsCookieName;
string authValue = request.Form[authParamName] ?? request.QueryString[authParamName];
if (authValue != null)
{
UpdateCookie(authCookieName, authValue);
}
}
catch (Exception ex)
{
// TODO: Add logging here.
}
}
private void UpdateCookie(string cookieName, string cookieValue)
{
HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookieName);
if (cookie == null)
{
HttpCookie newCookie = new HttpCookie(cookieName, cookieValue);
Response.Cookies.Add(newCookie);
}
else
{
cookie.Value = cookieValue;
HttpContext.Current.Request.Cookies.Set(cookie);
}
}
}
Предупреждение системы безопасности: только скопируйте и вставьте этот код в к Вашему приложению ASP.NET, не зная то, что Вы делаете. Это представляет проблемы безопасности и возможности Сценариев перекрестного сайта.
Можно получить текущий SessionID из следующего кода:
string sessionId = HttpContext.Current.Session.SessionID;
Затем можно подать это в скрытое поле, возможно, и затем доступ то значение через YUI.
Это - просто получение, таким образом, у Вас, надо надеяться, не будет проблем масштабирования. Проблемы безопасности, хотя, который я не знаю.
Идентификатор Сессии ASP.NET хранится в Session.SessionID
таким образом, Вы могли установить это в скрытом поле и затем отправить его на следующую страницу.
Я думаю, однако, что, если приложение перезапускает, sessionID истечет, если Вы не сохраните свои сессии в SQL-сервере.