C# webBrowser自动登陆windows集成验证方法

1:创建控件:

button1 

webBrowser1 

textBox1  网址

textBox2  用户名

textBox3  密码

 

2:

using...

 

 1  using  System;
 2  using  System.Windows.Forms;
 3  using  System.Runtime.InteropServices;

 

 

3:完整代码。

 

  1 
  2  namespace  WebTest1
  3  {
  4       #region  COM Interfaces
  5 
  6          [ComImport,
  7          Guid( " 00000112-0000-0000-C000-000000000046 " ),
  8          InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
  9           public   interface  IOleObject
 10          {
 11               void  SetClientSite(IOleClientSite pClientSite);
 12               void  GetClientSite(IOleClientSite ppClientSite);
 13               void  SetHostNames( object  szContainerApp,  object  szContainerObj);
 14               void  Close( uint  dwSaveOption);
 15               void  SetMoniker( uint  dwWhichMoniker,  object  pmk);
 16               void  GetMoniker( uint  dwAssign,  uint  dwWhichMoniker,  object  ppmk);
 17               void  InitFromData(IDataObject pDataObject,  bool
 18              fCreation,  uint  dwReserved);
 19               void  GetClipboardData( uint  dwReserved, IDataObject ppDataObject);
 20               void  DoVerb( uint  iVerb,  uint  lpmsg,  object  pActiveSite,
 21               uint  lindex,  uint  hwndParent,  uint  lprcPosRect);
 22               void  EnumVerbs( object  ppEnumOleVerb);
 23               void  Update();
 24               void  IsUpToDate();
 25               void  GetUserClassID( uint  pClsid);
 26               void  GetUserType( uint  dwFormOfType,  uint  pszUserType);
 27               void  SetExtent( uint  dwDrawAspect,  uint  psizel);
 28               void  GetExtent( uint  dwDrawAspect,  uint  psizel);
 29               void  Advise( object  pAdvSink,  uint  pdwConnection);
 30               void  Unadvise( uint  dwConnection);
 31               void  EnumAdvise( object  ppenumAdvise);
 32               void  GetMiscStatus( uint  dwAspect,  uint  pdwStatus);
 33               void  SetColorScheme( object  pLogpal);
 34          }
 35 
 36          [ComImport,
 37          Guid( " 00000118-0000-0000-C000-000000000046 " ),
 38          InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
 39           public   interface  IOleClientSite
 40          {
 41               void  SaveObject();
 42               void  GetMoniker( uint  dwAssign,  uint  dwWhichMoniker,  object  ppmk);
 43               void  GetContainer( object  ppContainer);
 44               void  ShowObject();
 45               void  OnShowWindow( bool  fShow);
 46               void  RequestNewObjectLayout();
 47          }
 48 
 49          [ComImport,
 50          GuidAttribute( " 6d5140c1-7436-11ce-8034-00aa006009fa " ),
 51          InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown),
 52          ComVisible( false )]
 53           public   interface  IServiceProvider
 54          {
 55              [ return : MarshalAs(UnmanagedType.I4)]
 56              [PreserveSig]
 57               int  QueryService( ref  Guid guidService,  ref  Guid riid,  out  IntPtr
 58              ppvObject);
 59          }
 60 
 61          [ComImport, GuidAttribute( " 79EAC9D0-BAF9-11CE-8C82-00AA004BA90B " ),
 62          InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown),
 63          ComVisible( false )]
 64           public   interface  IAuthenticate
 65          {
 66              [ return : MarshalAs(UnmanagedType.I4)]
 67              [PreserveSig]
 68               int  Authenticate( ref  IntPtr phwnd,
 69               ref  IntPtr pszUsername,
 70               ref  IntPtr pszPassword
 71              );
 72          }
 73 
 74           #endregion
 75       public   partial   class  Form1 : Form, IOleClientSite, IServiceProvider,IAuthenticate
 76      {
 77 
 78           public   static  Guid IID_IAuthenticate  =   new  Guid( " 79eac9d0-baf9-11ce-8c82-00aa004ba90b " );
 79           public   const   int  INET_E_DEFAULT_ACTION  =   unchecked (( int ) 0x800C0011 );
 80           public   const   int  S_OK  =   unchecked (( int ) 0x00000000 );
 81 
 82           public  Form1()
 83          {
 84 
 85              InitializeComponent();
 86          }
 87 
 88           private   void  button1_Click( object  sender, EventArgs e)
 89          {
 90               string  oURL  =   this .textBox1.Text;
 91              webBrowser1.Navigate(oURL);
 92 
 93 
 94          }
 95 
 96           private   void  Form1_Load( object  sender, EventArgs e)
 97          {
 98               string  oURL  =   " about:blank " ;
 99              webBrowser1.Navigate(oURL);
100 
101 
102 
103               object  obj  =  webBrowser1.ActiveXInstance;
104              IOleObject oc  =  obj  as  IOleObject;
105              oc.SetClientSite( this   as  IOleClientSite);
106          }
107           #region  IOleClientSite Members
108 
109           public   void  SaveObject()
110          {
111               //  TODO: Add Form1.SaveObject implementation
112          }
113 
114           public   void  GetMoniker( uint  dwAssign,  uint  dwWhichMoniker,  object
115          ppmk)
116          {
117               //  TODO: Add Form1.GetMoniker implementation
118          }
119 
120           public   void  GetContainer( object  ppContainer)
121          {
122              ppContainer  =   this ;
123          }
124 
125           public   void  ShowObject()
126          {
127               //  TODO: Add Form1.ShowObject implementation
128          }
129 
130           public   void  OnShowWindow( bool  fShow)
131          {
132               //  TODO: Add Form1.OnShowWindow implementation
133          }
134 
135           public   void  RequestNewObjectLayout()
136          {
137               //  TODO: Add Form1.RequestNewObjectLayout implementation
138          }
139 
140           #endregion
141 
142           #region  IServiceProvider Members
143 
144           public   int  QueryService( ref  Guid guidService,  ref  Guid riid,  out  IntPtr ppvObject)
145          {
146               int  nRet  =  guidService.CompareTo(IID_IAuthenticate);  //  Zero returned if the compared objects are equal
147               if  (nRet  ==   0 )
148              {
149                  nRet  =  riid.CompareTo(IID_IAuthenticate);  //  Zero returned if the compared objects are equal
150                   if  (nRet  ==   0 )
151                  {
152                      ppvObject  =  Marshal.GetComInterfaceForObject( this ,
153                       typeof (IAuthenticate));
154                       return  S_OK;
155                  }
156              }
157              ppvObject  =   new  IntPtr();
158               return  INET_E_DEFAULT_ACTION;
159          }
160 
161           #endregion
162 
163           #region  IAuthenticate Members
164 
165           public   int  Authenticate( ref  IntPtr phwnd,  ref  IntPtr pszUsername, ref  IntPtr pszPassword)
166          {
167              IntPtr sUser  =  Marshal.StringToCoTaskMemAuto(textBox2.text );
168              IntPtr sPassword  =  Marshal.StringToCoTaskMemAuto(textBox3.text );
169 
170              pszUsername  =  sUser;
171              pszPassword  =  sPassword;
172               return  S_OK;
173          }
174 
175           #endregion
176 
177      }
178  }
179 

 

 

你可能感兴趣的:(WebBrowser)