none
initParams如何在网页源文件中隐藏? RRS feed

  • 问题

  • 我在加载SL的宿主页面的代码隐藏页添加了一个方法
    protected String GetGUID()
    {
         return ConfigurationManager.AppSettings["GUID"];
    }
    然后通过initParams将web.config里的参数传递给SL
    <param name="initParams" value="GUID=<%=GetGUID()%>" />

    问题是,即使我这样做,用户通过加载SL后,通过查看网页源文件,看到的并不是
    <param name="initParams" value="GUID=<%=GetGUID()%>" />
    而是web.config里具体的值,如下
    <param name="initParams" value="GUID=243ab990-edfb-4773-8f2b-5381372afb75e8" />
    请问initParams里怎么做才能让用户查看源文件后看不到具体的数据?
    2010年3月8日 6:01

答案

  • 我在加载SL的宿主页面的代码隐藏页添加了一个方法
    protected String GetGUID()
    {
         return ConfigurationManager.AppSettings["GUID"];
    }
    然后通过initParams将web.config里的参数传递给SL
    <param name="initParams" value="GUID=<%=GetGUID()%>" />

    问题是,即使我这样做,用户通过加载SL后,通过查看网页源文件,看到的并不是
    <param name="initParams" value="GUID=<%=GetGUID()%>" />
    而是web.config里具体的值,如下
    <param name="initParams" value="GUID=243ab990-edfb-4773-8f2b-5381372afb75e8" />
    请问initParams里怎么做才能让用户查看源文件后看不到具体的数据?

    如果你只是要在Silverlight里取得webconfig里的值,你可以在sl里用Webclient去取一个aspx页面response.write一个字符,在sl里直接取就行了。
    这是最简单的办法了,呵呵,不过你也可以试试用JS给silverlight的objectid的initParams属性传值,换一种思路办法就多一些。

    希望这个解答对你有用
    谢谢,但是不论是response.write还是initParams传值,或者用一个asp隐藏控件传值
    这个数值都会在网页源文件中被用户看到,而我传的数据是保密的,不希望被用户看到
    现在采用的方法是宿主页面跳过SL直接往WebService的session传值,SL调用WebService的session获取这个值
    保密性是没问题了,就是麻烦了不少
    我把宿主网站和WebService放在一起了,这样就不用再写读写session的webmethod了
    2010年3月9日 3:28

全部回复

  • 我在加载SL的宿主页面的代码隐藏页添加了一个方法
    protected String GetGUID()
    {
         return ConfigurationManager.AppSettings["GUID"];
    }
    然后通过initParams将web.config里的参数传递给SL
    <param name="initParams" value="GUID=<%=GetGUID()%>" />

    问题是,即使我这样做,用户通过加载SL后,通过查看网页源文件,看到的并不是
    <param name="initParams" value="GUID=<%=GetGUID()%>" />
    而是web.config里具体的值,如下
    <param name="initParams" value="GUID=243ab990-edfb-4773-8f2b-5381372afb75e8" />
    请问initParams里怎么做才能让用户查看源文件后看不到具体的数据?

    如果你只是要在Silverlight里取得webconfig里的值,你可以在sl里用Webclient去取一个aspx页面response.write一个字符,在sl里直接取就行了。
    这是最简单的办法了,呵呵,不过你也可以试试用JS给silverlight的objectid的initParams属性传值,换一种思路办法就多一些。

    希望这个解答对你有用

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com


    《银光志--Silverlight 3.0开发详解与最佳实践》
    2010年3月8日 14:24
    版主
  • 我在加载SL的宿主页面的代码隐藏页添加了一个方法
    protected String GetGUID()
    {
         return ConfigurationManager.AppSettings["GUID"];
    }
    然后通过initParams将web.config里的参数传递给SL
    <param name="initParams" value="GUID=<%=GetGUID()%>" />

    问题是,即使我这样做,用户通过加载SL后,通过查看网页源文件,看到的并不是
    <param name="initParams" value="GUID=<%=GetGUID()%>" />
    而是web.config里具体的值,如下
    <param name="initParams" value="GUID=243ab990-edfb-4773-8f2b-5381372afb75e8" />
    请问initParams里怎么做才能让用户查看源文件后看不到具体的数据?

    如果你只是要在Silverlight里取得webconfig里的值,你可以在sl里用Webclient去取一个aspx页面response.write一个字符,在sl里直接取就行了。
    这是最简单的办法了,呵呵,不过你也可以试试用JS给silverlight的objectid的initParams属性传值,换一种思路办法就多一些。

    希望这个解答对你有用
    谢谢,但是不论是response.write还是initParams传值,或者用一个asp隐藏控件传值
    这个数值都会在网页源文件中被用户看到,而我传的数据是保密的,不希望被用户看到
    现在采用的方法是宿主页面跳过SL直接往WebService的session传值,SL调用WebService的session获取这个值
    保密性是没问题了,就是麻烦了不少
    我把宿主网站和WebService放在一起了,这样就不用再写读写session的webmethod了
    2010年3月9日 3:28