本文整理汇总了C#中IronWASP.Session.GetClone方法的典型用法代码示例。如果您正苦于以下问题:C# Session.GetClone方法的具体用法?C# Session.GetClone怎么用?C# Session.GetClone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IronWASP.Session
的用法示例。
在下文中一共展示了Session.GetClone方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BeforeResponse
internal static void BeforeResponse(Fiddler.Session Sess)
{
if (Sess.HTTPMethodIs("Connect")) return;
if (Sess.oFlags.ContainsKey("IronFlag-BuiltBy"))
{
if (Sess.oFlags["IronFlag-BuiltBy"].Equals("Stealth")) return;
}
Session IrSe;
try
{
Sess.utilDecodeResponse();
IrSe = new Session(Sess);
}
catch(Exception Exp)
{
IronException.Report("Error reading Response", Exp.Message, Exp.StackTrace);
return;
}
if (IrSe == null)
{
IronException.Report("Error reading Response", "", "");
return;
}
if (IrSe.Response == null)
{
IronException.Report("Error reading Response", "", "");
return;
}
if (IrSe.FiddlerSession == null)
{
IronException.Report("Error reading Response", "", "");
return;
}
long TTL = DateTime.Now.Ticks - IrSe.Request.TimeObject.Ticks;
IrSe.Response.TTL = (int)(TTL / 10000);
if (Sess.oFlags.ContainsKey("IronFlag-TTL"))
{
IrSe.FiddlerSession.oFlags["IronFlag-TTL"] = IrSe.Response.TTL.ToString();
}
else
{
IrSe.FiddlerSession.oFlags.Add("IronFlag-TTL", IrSe.Response.TTL.ToString());
}
try
{
Session ClonedIronSessionWithResponse = IrSe.GetClone();
if (ClonedIronSessionWithResponse != null && ClonedIronSessionWithResponse.Response != null)
{
PassiveChecker.AddToCheckResponse(ClonedIronSessionWithResponse);
}
else
IronException.Report("IronSession with Response Couldn't be cloned at ID - " + IrSe.ID.ToString(), "", "");
}
catch (Exception Exp)
{
IronException.Report("Error Cloning IronSession in BeforeRequest", Exp.Message, Exp.StackTrace);
}
if (!IrSe.FiddlerSession.isFlagSet(Fiddler.SessionFlags.RequestGeneratedByFiddler))
{
IronUpdater.AddProxyResponse(IrSe.Response);
}
try
{
PluginStore.RunAllPassivePluginsBeforeResponseInterception(IrSe);
}
catch(Exception Exp)
{
IronException.Report("Error running 'BeforeInterception' Passive plugins on Response", Exp.Message, Exp.StackTrace);
}
if (!IrSe.FiddlerSession.isFlagSet(Fiddler.SessionFlags.RequestGeneratedByFiddler))
{
IrSe.Response.Host = IrSe.Request.Host;
if(CanIntercept(IrSe.Response, IrSe.Request))
{
IrSe.MSR = new ManualResetEvent(false);
IrSe.FiddlerSession.state = Fiddler.SessionStates.HandTamperResponse;
InterceptedSessions.Add(IrSe.ID + "-Response", IrSe);
IronUI.SendSessionToProxy(IrSe);
InterceptedSessions[IrSe.ID + "-Response"].MSR.WaitOne();
InterceptedSessions.Remove(IrSe.ID + "-Response");
}
else
{
IrSe.FiddlerSession.state = Fiddler.SessionStates.AutoTamperResponseBefore;
}
}
try
{
PluginStore.RunAllPassivePluginsAfterResponseInterception(IrSe);
}
catch(Exception Exp)
{
IronException.Report("Error running 'AfterInterception' Passive plugins on Response", Exp.Message, Exp.StackTrace);
}
}
示例2: BeforeResponse
internal static void BeforeResponse(Fiddler.Session Sess)
{
if (Sess.HTTPMethodIs("Connect")) return;
if (Sess.oFlags.ContainsKey("IronFlag-BuiltBy"))
{
if (Sess.oFlags["IronFlag-BuiltBy"].Equals("Stealth")) return;
}
Session IrSe;
try
{
Sess.utilDecodeResponse();
IrSe = new Session(Sess);
}
catch(Exception Exp)
{
IronException.Report("Error reading Response", Exp.Message, Exp.StackTrace);
return;
}
if (IrSe == null)
{
IronException.Report("Error reading Response", "", "");
return;
}
if (IrSe.Response == null)
{
IronException.Report("Error reading Response", "", "");
return;
}
if (IrSe.FiddlerSession == null)
{
IronException.Report("Error reading Response", "", "");
return;
}
long TTL = DateTime.Now.Ticks - IrSe.Request.TimeObject.Ticks;
IrSe.Response.TTL = (int)(TTL / 10000);
if (Sess.oFlags.ContainsKey("IronFlag-TTL"))
{
IrSe.FiddlerSession.oFlags["IronFlag-TTL"] = IrSe.Response.TTL.ToString();
}
else
{
IrSe.FiddlerSession.oFlags.Add("IronFlag-TTL", IrSe.Response.TTL.ToString());
}
try
{
Session ClonedIronSessionWithResponse = IrSe.GetClone();
if (ClonedIronSessionWithResponse != null && ClonedIronSessionWithResponse.Response != null)
{
PassiveChecker.AddToCheckResponse(ClonedIronSessionWithResponse);
}
else
IronException.Report("IronSession with Response Couldn't be cloned at ID - " + IrSe.ID.ToString(), "", "");
}
catch (Exception Exp)
{
IronException.Report("Error Cloning IronSession in BeforeRequest", Exp.Message, Exp.StackTrace);
}
if (!IrSe.FiddlerSession.isFlagSet(Fiddler.SessionFlags.RequestGeneratedByFiddler))
{
//IronUpdater.AddProxyResponse(IrSe.Response);
}
if (!IrSe.FiddlerSession.isFlagSet(Fiddler.SessionFlags.RequestGeneratedByFiddler))
{
IrSe.Response.Host = IrSe.Request.Host;
IrSe.OriginalResponse = IrSe.Response.GetClone(true);
if(CanInterceptResponse(IrSe))
{
IrSe.MSR = new ManualResetEvent(false);
IrSe.FiddlerSession.state = Fiddler.SessionStates.HandTamperResponse;
InterceptedSessions.Add(IrSe.ID + "-Response", IrSe);
IronUI.SendSessionToProxy(IrSe);
InterceptedSessions[IrSe.ID + "-Response"].MSR.WaitOne();
InterceptedSessions.Remove(IrSe.ID + "-Response");
IrSe.UpdateFiddlerSessionFromIronSession();
}
else if (ScriptedInterceptionEnabled)
{
IrSe.UpdateFiddlerSessionFromIronSession();
}
else
{
IrSe.FiddlerSession.state = Fiddler.SessionStates.AutoTamperResponseBefore;
}
if (ScriptedInterceptionEnabled && ScInt.CallAfterInterception)
{
try
{
ScInt.AfterInterception = true;
ScInt.ShouldIntercept(IrSe);
}
catch (Exception Exp)
{
IronUI.ShowProxyException("Error in Scripted Interception Script");
IronException.Report("Error in Scripted Interception Script", Exp);
}
ScInt.AfterInterception = false;
//.........这里部分代码省略.........
示例3: BeforeRequest
internal static void BeforeRequest(Fiddler.Session Sess)
{
if (Sess.HTTPMethodIs("Connect"))
{
if (IronProxy.UseUpstreamProxy)
{
string UpstreamProxyString = string.Format("{0}:{1}", IronProxy.UpstreamProxyIP, IronProxy.UpstreamProxyPort.ToString());
Sess.oFlags.Add("x-overrideGateway", UpstreamProxyString);
}
if (Config.HasFiddlerFlags)
{
string[,] Flags = Config.GetFiddlerFlags();
for (int i = 0; i < Flags.GetLength(0); i++)
{
Sess.oFlags.Add(Flags[i, 0], Flags[i, 1]);
}
}
return;
}
if(Sess.oFlags.ContainsKey("IronFlag-BuiltBy"))
{
if (Sess.oFlags["IronFlag-BuiltBy"].Equals("Stealth"))
{
if (IronProxy.UseUpstreamProxy)
{
string UpstreamProxyString = string.Format("{0}:{1}", IronProxy.UpstreamProxyIP, IronProxy.UpstreamProxyPort.ToString());
Sess.oFlags.Add("x-overrideGateway", UpstreamProxyString);
}
if (Config.HasFiddlerFlags)
{
string[,] Flags = Config.GetFiddlerFlags();
for (int i = 0; i < Flags.GetLength(0); i++)
{
Sess.oFlags.Add(Flags[i, 0], Flags[i, 1]);
}
}
return;
}
}
Session IrSe;
try
{
IrSe = new Session(Sess);
}
catch(Exception Exp)
{
IronException.Report("Error reading Request", Exp.Message, Exp.StackTrace);
return;
}
if (IrSe == null)
{
IronException.Report("Error reading Request", "", "");
return;
}
if (IrSe.Request == null)
{
IronException.Report("Error reading Request", "", "");
return;
}
if (IrSe.FiddlerSession == null)
{
IronException.Report("Error reading Request", "", "");
return;
}
//Needs to be turned on to read the response body
IrSe.FiddlerSession.bBufferResponse = true;
IrSe.Request.TimeObject = DateTime.Now;
if (Sess.oFlags.ContainsKey("IronFlag-Ticks"))
{
IrSe.FiddlerSession.oFlags["IronFlag-Ticks"] = IrSe.Request.TimeObject.Ticks.ToString();
}
else
{
IrSe.FiddlerSession.oFlags.Add("IronFlag-Ticks", IrSe.Request.TimeObject.Ticks.ToString());
}
try
{
Session ClonedIronSessionWithRequest = IrSe.GetClone();
if (ClonedIronSessionWithRequest != null && ClonedIronSessionWithRequest.Request != null)
PassiveChecker.AddToCheckRequest(ClonedIronSessionWithRequest);
else
IronException.Report("IronSession Request Couldn't be cloned at ID - " + IrSe.ID.ToString(),"","");
}
catch(Exception Exp)
{
IronException.Report("Error Cloning IronSession in BeforeRequest", Exp.Message, Exp.StackTrace);
}
try
{
PluginStore.RunAllPassivePluginsBeforeRequestInterception(IrSe);
}
catch (Exception Exp)
{
IronException.Report("Error running 'BeforeInterception' Passive plugins on Request", Exp.Message, Exp.StackTrace);
}
if (!IrSe.FiddlerSession.isFlagSet(Fiddler.SessionFlags.RequestGeneratedByFiddler))
//.........这里部分代码省略.........