1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| <%@ Import NameSpace="System" %>
<%@ Import NameSpace="System.Collections.Generic" %>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Configuration" %>
<%@ Import NameSpace="System.Collections" %>
<%@ Import NameSpace="System.Web" %>
<%@ Import NameSpace="System.Web.Security" %>
<%@ Import NameSpace="System.Web.UI" %>
<%@ Import NameSpace="System.Web.UI.WebControls" %>
<%@ Import NameSpace="System.Web.UI.WebControls.WebParts" %>
<%@ Import NameSpace="System.Web.UI.HtmlControls" %>
<%@ Import NameSpace="System.Reflection" %>
<%@ Import NameSpace="System.Web.SessionState" %>
<script language="c#" runat="server">
public void CodeFramework2()
{
HttpContext.Current.Session["FRAMEWORK2"] = "FRAMEWORK 2";
object obj = typeof(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);
//ici on va utiliser "entries"
Hashtable c2 = (Hashtable)obj.GetType().GetField("_entries", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj);
foreach (DictionaryEntry entry in c2)
{
object o1 = entry.Value.GetType().GetProperty("Value", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(entry.Value, null);
if (o1.GetType().ToString() == "System.Web.SessionState.InProcSessionState")
{
SessionStateItemCollection sess = (SessionStateItemCollection)o1.GetType().GetField("_sessionItems", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(o1);
if (sess != null)
{
if (sess["FRAMEWORK2"] != null)
{
Label1.Text += sess["FRAMEWORK2"] + " is Active.<br>";
}
}
}
}
}
public void Page_Load(object sender, EventArgs e)
{
object obj = typeof(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);
foreach (FieldInfo ofi in obj.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
{
Label1.Text += ofi.Name + "<br/>";
}
Label1.Text += "FIN<br/>";
try
{CodeFramework2();}
catch
{
Label1.Text += "ERREUR FRAMEWORK2 <br>";
}
try
{CodeFramework3();}
catch
{
Label1.Text += "ERREUR FRAMEWORK3 <br>";
}
Label1.Text += "System.Environment.Version = " + System.Environment.Version;
}
public void CodeFramework3()
{
HttpContext.Current.Session["FRAMEWORK3"] = "FRAMEWORK 3";
object obj = typeof(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);
//ici on va utiliser "_caches"
object[] obj2 = (object[])obj.GetType().GetField("_caches", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj);
for (int i = 0; i < obj2.Length; i++)
{
Hashtable c2 = (Hashtable)obj2[i].GetType().GetField("_entries", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(obj2[i]);
foreach (DictionaryEntry entry in c2)
{
object o1 = entry.Value.GetType().GetProperty("Value", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(entry.Value, null);
if (o1.GetType().ToString() == "System.Web.SessionState.InProcSessionState")
{
SessionStateItemCollection sess = (SessionStateItemCollection)o1.GetType().GetField("_sessionItems", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(o1);
if (sess != null)
{
if (sess["FRAMEWORK3"] != null)
{
Label1.Text += sess["FRAMEWORK3"] + " is Active.<br>";
}
}
}
}
}
}
</script>
<html>
<body>
<form id="form1" runat="server">
<asp:Label id="Label1" runat="server"/>
</form>
</body>
</html> |
Partager