今天在网上闲逛,无意见发现一个代码中使用反射调用.Net框架中的非Public方法,觉得这个思路很好.我怎么就没有想到呢?前两个还在想怎样调用Page类中的Internal方法DecryptString来解一个隐藏域"__PREVIOUSPAGE"的值,看判断自己的一个分析是否正确.马上动手代码如下,^_^问题解决了.

    protected void Button2_Click(object sender, EventArgs e)
    
{
        
//Server.Transfer("default2.aspx");
        Type t = typeof(System.Web.UI.Page);
        
object[] args = new object[] "Htr9cH0-sPEsru8HSXo70y6PnBg8nwjl0" };


        BindingFlags bindingFlags 
= BindingFlags.DeclaredOnly | BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.InvokeMethod | BindingFlags.Instance;
        
string s=(string) t.InvokeMember("DecryptString", bindingFlags, nullthis, args);
        Response.Write(
"</br>"+s+"</br>");
    }

posted on 2008-04-08 23:27  启明  阅读(611)  评论(2编辑  收藏  举报