1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
using System;
6
using System.Data;
7
using System.DirectoryServices;
8
using System.Collections;
9
10
namespace IISManage
11
{
12
///<summary>
13
/// IIS管理类,可以实现创建站点、虚拟目录,删除虚拟目录等 ///
14
/// </summary>
15
public class IISManager
16
{
17
18
private string _server, _website, _AnonymousUserPass, _AnonymousUserName;
19
private VirtualDirectories _virdirs;
20
protected System.DirectoryServices.DirectoryEntry rootfolder;
21
private bool _batchflag;
22
23
24
构造函数 #region 定义公共属性
58
59
60
/// <summary>
61
/// 匿名访问用户
62
/// </summary>
63
public string AnonymousUserName
64
{
65
get { return _AnonymousUserName; }
66
set { _AnonymousUserName = value; }
67
}
68
69
70
/// <summary>
71
/// 匿名访问用户密码
72
/// </summary>
73
public string AnonymousUserPass
74
{
75
get { return _AnonymousUserPass; }
76
set { _AnonymousUserPass = value; }
77
}
78
79
80
/// <summary>
81
/// 服务器,可以是IP或计算名
82
/// </summary>
83
public string Server
84
{
85
get { return _server; }
86
set { _server = value; }
87
}
88
89
/// <summary>
90
/// 站点,一般来说第一台主机为1,第二台主机为2,依次类推
91
/// </summary>
92
public int WebSite
93
{
94
get { return Convert.ToInt32(_website); }
95
set { _website = Convert.ToString(value); }
96
}
97
98
99
/// <summary>
100
/// 虚拟目录的名字
101
/// </summary>
102
public VirtualDirectories VirDirs
103
{
104
get { return _virdirs; }
105
set { _virdirs = value; }
106
}
107
108
109
110
定义公共方法
368
369
私有方法
479
}
480
/// <summary>
481
/// 虚拟目录实体
482
/// </summary>
483
public class VirtualDirectory
484
{
485
private bool _read, _execute, _script, _ssl, _write, _authbasic, _authntlm, _indexed, _endirbrow, _endefaultdoc;
486
private string _ausername, _auserpass, _name, _path;
487
private int _flag;
488
private string _defaultdoc;
489
490
/// <summary>
491
/// 构造函数
492
/// </summary>
493
public VirtualDirectory()
494
{
495
SetValue();
496
}
497
498
499
/// <summary>
500
/// 构造函数
501
/// </summary>
502
/// <param name="sVirDirName">虚拟目录名</param>
503
public VirtualDirectory(string sVirDirName)
504
{
505
SetValue();
506
_name = sVirDirName;
507
}
508
/// <summary>
509
/// 构造函数
510
/// </summary>
511
/// <param name="sVirDirName">虚拟目录名</param>
512
/// <param name="strPhyPath">物理路径</param>
513
/// <param name="AnonymousUser"></param>
514
public VirtualDirectory(string sVirDirName, string strPhyPath, string[] AnonymousUser)
515
{
516
SetValue();
517
_name = sVirDirName;
518
_path = strPhyPath;
519
_ausername = AnonymousUser[0];
520
_auserpass = AnonymousUser[1];
521
}
522
523
524
525
/// <summary>
526
/// 设置虚拟目录的属性
527
/// </summary>
528
private void SetValue()
529
{
530
_read = true;
531
_execute = false;
532
_script = true;
533
_ssl = false;
534
_write = false;
535
_authbasic = false;
536
_authntlm = true;
537
_indexed = true;
538
_endirbrow = false;
539
_endefaultdoc = true;
540
_flag = 1;
541
_defaultdoc = "index.aspx";
542
_path = "C:\\";
543
_ausername = "IUSR_DEVE-SERVER";
544
_auserpass = "IUSR_DEVE-SERVER";
545
_name = "";
546
}
547
548
549
public override string ToString()
550
{
551
return this._name;
552
}
553
554
定义属性
636
}
637
638
639
/// <summary>
640
/// 虚拟目录集合类
641
/// </summary>
642
public class VirtualDirectories : System.Collections.Hashtable
643
{
644
public VirtualDirectories() { }
645
/// <summary>
646
/// 搜索指定的虚拟目录
647
/// </summary>
648
/// <param name="strName">虚拟目录名</param>
649
/// <returns></returns>
650
public VirtualDirectory Find(string strName)
651
{
652
return (VirtualDirectory)this[strName];
653
}
654
}
655
}
656

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

368

369

479

480

481

482

483

484

485

486

487

488

489

490

491

492

493

494

495

496

497

498

499

500

501

502

503

504

505

506

507

508

509

510

511

512

513

514

515

516

517

518

519

520

521

522

523

524

525

526

527

528

529

530

531

532

533

534

535

536

537

538

539

540

541

542

543

544

545

546

547

548

549

550

551

552

553

554

636

637

638

639

640

641

642

643

644

645

646

647

648

649

650

651

652

653

654

655

656
