.NET实现添加和删除站点主机头

【标题】 .NET实现添加和删除站点主机头

 【代码】
               
 1  using  System;
 2  using  System.DirectoryServices;
 3 
 4  namespace  PPT.Biz
 5  {
 6       ///   <summary>
 7       ///  HostHead 的摘要说明。
 8       ///   </summary>
 9       public   class  HostHead
10      {
11           public  HostHead()
12          {
13              
14          }
15          
16           private   static   int  siteId  = 752236766 ; // 站点的ID
17          
18           ///   <summary>
19           ///  DirectoryEntry site = new DirectoryEntry("IIS://localhost/W3SVC/1/root");
20           ///  说明:
21           ///  siteid,默认站点是1,对于非默认站点,通过查看站点日志文件名就可以知道。
22           /// 或者直接查看文件C:\WINDOWS\system32\inetsrv\MetaBase.xml
23           /// 如果提示没有访问权限,请尝试使用虚拟帐号:
24           /// <identity impersonate="true" userName="managerisdavid.weihw" password="@#$%&amp;%#$%sdfgsdaf34756" />
25           ///   </summary>
26           ///   <param name="siteid"></param>
27           ///   <param name="ip"></param>
28           ///   <param name="port"></param>
29           ///   <param name="domain"></param>
30           public   static   void  AddHostHeader( int  siteid,  string  ip,  int  port,  string  domain) // 增加主机头(站点编号.ip.端口.域名)
31          {
32              DirectoryEntry site  =   new  DirectoryEntry( " IIS://localhost/W3SVC/ "   +  siteid);
33              PropertyValueCollection serverBindings  =  site.Properties[ " ServerBindings " ];
34               string  headerStr  =   string .Format( " {0}:{1}:{2} " , ip, port, domain);
35               if  ( ! serverBindings.Contains(headerStr))
36              {
37                  serverBindings.Add(headerStr);
38              }
39              site.CommitChanges();
40          }
41 
42           public   static   void  DeleteHostHeader( int  siteid,  string  ip,  int  port,  string  domain) // 增加主机头(站点编号.ip.端口.域名)
43          {
44              DirectoryEntry site  =   new  DirectoryEntry( " IIS://localhost/W3SVC/ "   +  siteid);
45              PropertyValueCollection serverBindings  =  site.Properties[ " ServerBindings " ];
46               string  headerStr  =   string .Format( " {0}:{1}:{2} " , ip, port, domain);
47               if  (serverBindings.Contains(headerStr))
48              {
49                  serverBindings.Remove (headerStr);
50              }
51              site.CommitChanges();
52          }
53 
54 
55           public   static   void  AddHostHeader( string  domain)
56          {
57              DirectoryEntry site  =   new  DirectoryEntry( " IIS://localhost/W3SVC/ " + siteId);
58              
59              PropertyValueCollection serverBindings  =  site.Properties[ " ServerBindings " ];
60               string  headerStr  =   string .Format( " {0}:{1}:{2} " , null , 80 ,domain);
61               if  ( ! serverBindings.Contains(headerStr))
62              {
63                  serverBindings.Add(headerStr);
64              }
65              site.CommitChanges();
66          }
67 
68           public   static   void  DeleteHostHeader( string  domain)
69          {
70              DirectoryEntry site  =   new  DirectoryEntry( " IIS://localhost/W3SVC/ " + siteId);
71          
72              PropertyValueCollection serverBindings  =  site.Properties[ " ServerBindings " ];
73               string  headerStr  =   string .Format( " {0}:{1}:{2} " , null , 80 ,domain);
74               if  (serverBindings.Contains(headerStr))
75              {
76                  serverBindings.Remove(headerStr);
77              }
78              site.CommitChanges();
79          }
80      }
81  }

【说明】
            1、添加主机头时,可能提示无访问权限之类的错误,一般可以采用如下的方法解决:

              A、当允许匿名登录时,IIS将一个匿名登录使用的标识(缺省情况下是IUSR_MACHINENAME)交给ASP.NET应用程序。可以尝试修改该标识的访问权限。
         
             B、模拟指定的用户帐号。
            在Web.config文件的<identity>标记中指定具体的用户帐号:
            <identity impersonate="true" userName="accountname" password="password" />这时该ASP.NET应用程序的所有页面的所有请求都将以指定的用户帐号权限执行。

请参考: 微软中国社区

ASP实现站点主机头的添加与删除

None.gif < script >
None.gif
function  check()
None.gif{
None.gif   var yourname
= document.form1.yourname.value
None.gif   
if (yourname == "" ||fucCheckyourname(yourname) == 0 )
None.gif   {
None.gif      alert(
" 请输入域名或者您申请的域名不合法,请重新选择 " );
None.gif   return 
false ;
None.gif   document.form1.yourname.focus;
None.gif   }
None.gif   
None.gif   
else
None.gif   
None.gif   return 
true ;
None.gif}
None.gif
None.gif
function  fucCheckyourname(yourname)
None.gif{
None.gif var i,j,strTemp;
None.gif strTemp
= " 0123456789abcdefghijklmnopqrstuvwxyz " ;
None.gif 
for  (i = 0 ;i < yourname.length;i ++  )
None.gif {
None.gif  j
= strTemp.indexOf(yourname.charAt(i)); 
None.gif  
if  (j ==- 1 )
None.gif  {
None.gif   
// 说明有字符不合法
None.gif   return 
0 ;
None.gif  }
None.gif }
None.gif 
// 说明合法
None.gif return 
1 ;
None.gif}
None.gif
</ script >
None.gif
None.gif
< form id = " form1 "  name = " form1 "  method = " post "  action = "" >
None.gif  
< label > 请选择域名:Http: //
None.gif
< input type = " text "  name = " yourname " />
None.gif  
</ label >  
None.gif  .xawgd.cn
None.gif  
< label >
None.gif  
< input type = " submit "  name = " Submit "  value = " 提交 "  onclick = " return check() "   />
None.gif  
< input type = " hidden "  name = " flag "  value = " add "   />
None.gif  
</ label >
None.gif
</ form >
None.gif
<
None.gif 
if  request.Form( " flag " ) = " add "   then
None.gif  dnsname
= request.Form( " yourname " )
None.gif  dnsname
= dnsname & i
None.gif  AddWebSiteHostName 
1 , " :7655: " & "" & dnsname & "" & " .xawgd.cn "      ' 访问ip,端口,主机头名"
None.gif
  response.Write( " <script>alert('申请成功,你申请的站点域名为http:// " & dnsname & " .xawgd.cn')</script> " )
None.gif  Response.Write(
" <script>window.opener=null;window.close();</script> " )  
None.gif 
end   if
None.gif%
>
None.gif
<
None.gif
' ===============================================================
None.gif'
函数名称:AddWebSiteHostName
None.gif'
函数功能:在已存在的站点中主机头中添加新的主机头
None.gif'
           index 站点编号
None.gif'
           NewWebTop 主机头字符串
None.gif'
例如:NewWebTop="192.168.0.163:80:aaa.xawgd.cn"'访问ip,端口,主机头名
None.gif'
     index="1" 站点编号。1为默认站点
None.gif'
===============================================================
None.gif
Public   Function  AddWebSiteHostName(index, NewWebTop)
None.gif
None.gif  
On   Error   Resume   Next
None.gif  
None.gif  
Dim  tmpwebtop, ztop, oWebServer, tmpstring, Computer
None.gif 
None.gif  Computer 
=   " localhost "
None.gif  
None.gif  
Set  oWebServer  =   Getobject ( " IIS:// "   &  Computer  &   " /w3svc/ "   &  index)
None.gif  
None.gif  tmpwebtop 
=  oWebServer.serverbindings  ' 获取原来的主机头
None.gif
  
None.gif  tmpstring 
=   Join (tmpwebtop,  " ||| " )
None.gif  
None.gif  
If   InStr (tmpstring,  " ||| "   &  NewWebTop  &   " ||| " Or   InStr (tmpstring,  " ||| "   &  NewWebTop)  Or   InStr (tmpstring, NewWebTop  &   " ||| " =   1   Then
None.gif     
None.gif     oWebServer.serverbindings 
=  tmpwebtop
None.gif     
None.gif  
Else
None.gif     
None.gif     
ReDim  Preserve tmpwebtop( UBound (tmpwebtop)  +   1 )
None.gif     
None.gif     tmpwebtop(
UBound (tmpwebtop))  =  NewWebTop
None.gif   
None.gif     oWebServer.serverbindings 
=  tmpwebtop
None.gif     
None.gif  
End   If
None.gif
None.gif  tmpwebtop 
=  oWebServer.serverbindings
None.gif  tmpstring 
=   Join (tmpwebtop,  " ||| " )
None.gif  
None.gif  oWebServer.SetInfo
None.gif
None.gif
End Function
None.gif%
>
None.gif
None.gif

 

[Tag] .NET添加与删除站点主机头 二级域名 虚拟指定的帐号 ASP实现添加与删除站点主机头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值