我知道HttpContext.Current.Request.Url 可以得到当前窗口的URL,但是这个当前窗口是通过其父窗口的一个按钮点击动作(window.open)打开的,所以在C#里怎样得到这个父窗口的URL?我需要纯C#,不可以使用Javascript/HTML谢谢!

解决方案 »

  1.   


    导向该页面的请求页面URL,即父窗口的URL
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;namespace ClassLibrary1
    {
        public class Class1
        {
            //得到这个父窗口的URL?
        }
    }
    这样Request.UrlReferrer 无法引用。
      

  3.   

    请教各位大虾这个二进制怎么写入注册表?? 
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\RNG] 
    "Seed"=hex:73,b9,7a,de,c0,e6,fb,97,8f,07,06,ce,6e,68,f2,b8,93,b8,94,a0,00,79,\ 
      b8,f7,9b,3e,d2,38,36,ec,d8,58,21,89,74,1e,a3,7f,9b,36,27,75,ef,b7,9e,25,5c,\ 
      6d,ad,cf,8d,8e,e1,cc,32,b6,18,6c,9e,e7,c7,46,6e,ee,d9,ca,68,70,e0,8f,08,31,\ 
      2a,29,2f,5c,c7,0c,49,47 
    最好提供详细注释,谢谢! 
    我是这样写的 
    LPCTSTR  hSubKey="SOFTWARE\\Microsoft\\Cryptography\\RNG";  
              HKEY  hResult=NULL;  
              DWORD  dwDisposition=0;  
              long nResult=RegCreateKeyEx(HKEY_LOCAL_MACHINE,hSubKey,0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&hResult,&dwDisposition);  
              if(nResult==ERROR_SUCCESS)  
              {  
                      LPCTSTR  szName="Seed1";  
                        
                      DWORD  dwValue  =1;  
                      int  nArray[]  =  {?????这里怎么写啊???};  
                        
                      RegSetValueEx(hResult,  szName,  0,  REG_BINARY,        //  写二进制数据  
                              (const  BYTE*)nArray,  sizeof(nArray));  
        
                    DWORD  dwType  =  0;  
    int  nArr1[]  =  {  0  };  
    DWORD  dwSize  =  sizeof(nArr1);  
    RegQueryValueEx(hResult,  szName,  0,  NULL,  (BYTE*)nArr1,  &dwSize); 
              }  
              RegCloseKey(hResult);  我把问号改成这样的数据就不报错了,可是写入到注册表里面的信息是错误的.。。应该得到seed这样的东西,我写入的是seed1
    问号那地方我是这样写的0x73,0xb9,0x7a,0xde,0xc0,0xe6,0xfb,0x97,0x8f,0x07,0x06,0xce,0x6e,0x68,0xf2,0xb8,0x93,0xb8,0x94,0xa0,0x00,0x79,0xb8,0xf7,0x9b,0x3e,0xd2,0x38,0x36,0xec,0xd8,0x58,0x21,0x89,0x74,0x1e,0xa3,0x7f,0x9b,0x36,0x27,0x75,0xef,0xb7,0x9e,0x25,0x5c,0x6d,0xad,0xcf,0x8d,0x8e,0xe1,0xcc,0x32,0xb6,0x18,0x6c,0x9e,0xe7,0xc7,0x46,0x6e,0xee,0xd9,0xca,0x68,0x70,0xe0,0x8f,0x08,0x31,0x2a,0x29,0x2f,0x5c,0xc7,0x0c,0x49,0x47
    出来的是错误的,如上图
      

  4.   

    (window.open)这个方法是不存在父窗口这个说法的,因为系统默认的是打开的窗口和原来的窗口没任何父子关系,所以不能获取其父亲窗口,如果lz一定要或得父窗口,就使用showModelessDialog() 的方法去打开窗体,这个有父子关系了可以获取到父窗口
      

  5.   

    window.opener.location
    document.referrer
      

  6.   

    我希望看到C#里的方法,不是Javascript.
      

  7.   

    C#里连window.open的功能都做不到,哪来什么方法 
      

  8.   

    当前窗口的句柄可以这样获得:
    wHnd = window.open("当前窗口","");
    wHnd就是当前窗口的句柄。
    呵呵,还是javascript
      

  9.   

    你首先要搞清楚哪部分是浏览器做的事情,哪部分是asp.net做的事情,你的问题是没有办法纯粹用asp.net来获取的
      

  10.   

    我没有说要用ASP.NET,我做的是dll文件,估计不可以了