博文
基于DirectoryServices的IIS虚拟目录管理(5)(2009-07-25 20:04:00)
摘要:三。测试IIS虚拟目录管理服务
// Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
// 自定义虚拟目录管理服务
using VirtualDirectoryServices;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
// Response.Write("测试IIS指向另一台机器的虚拟目录");
}
protected void Button1_Click1(object sender, EventArgs e)
{
// (1) 从VirDirTypeList获取虚拟目录类型
string strSchemaType = VirDirTypeList.SelectedValue;
IISVir......
基于DirectoryServices的IIS虚拟目录管理(4)(2009-07-25 17:07:00)
摘要: /// <summary>
/// 删除Web|Ftp虚拟目录
/// </summary>
/// <param name = "strVirDirName">
/// 欲删除虚拟目录的名称。
/// </param>
/// <returns>
/// 无返回值。<br/>
/// 如果欲删除的虚拟目录不存在,则抛出异常。注意在调用处捕获该异常。
/// </returns>
public void DeleteVirDir(string strVirDirName)
{
if(Exists(strVirDirName))
{
&......
基于DirectoryServices的IIS虚拟目录管理(3)(2009-07-25 17:03:00)
摘要:二。IIS虚拟目录管理类
/// <summary>
/// IIS虚拟目录管理类
/// </summary>
public class IISVirDirManager
{
// 操作IIS时,Path的格式为IIS://ServerName(IP)/ServiceType/SiteID/Directory
private string KeyType; // 虚拟目录类型,IIsWebVirtualDir或IIsFtpVirtualDir
private string SiteID; // 站点标识符
private string RootPath; // IIS Web|Ftp默认站点根目录
private DirectoryEntry RootDE; // IIS Web|Ftp默认站点
/// <summary>
/// 连接IIS服务器,获取Web|Ftp默认站点根目录入口
/// </summary>
private void ConnectToServer(......
基于DirectoryServices的IIS虚拟目录管理(2)(2009-07-25 17:00:00)
摘要: /// <value>
/// UNC账户名称属性<br/>
/// 当虚拟目录指向另一台计算机上的共享时,必须设置UNC账户。
/// </value>
public string UNCUsername
{
get { return _UNCUsername; }
set { _UNCUsername = value; }
}
/// <value>
/// UNC账户密码属性<br/>
/// 当虚拟目录指向另一台计算机上的共享时,必须设置UNC账户。
/// </value>
public string UNCPassword
&nb......
基于DirectoryServices的IIS虚拟目录管理(1)(2009-07-25 16:57:00)
摘要:一。IIS属性集VirtualDirectory类
using System;
using System.DirectoryServices; // 添加DirectorysServices引用!
/// <summary>
/// 自定义基于DirectoryServices的IIS虚拟目录管理服务,
/// 支持创建、更新、删除Web和Ftp虚拟目录。
/// </summary>
namespace VirtualDirectoryServices
{
/// <summary>
/// IIS属性类
/// </summary>
public class VirtualDirectory
{
private string _Name;
private string _Path;
private string _AppFriendlyName;
private string _UNCUsername;
private string _UNCPassword;
private bool _AccessRead;
&nb......
DirectoryEntry.Properties遍历IIS属性(2)(2009-07-22 22:38:00)
摘要:三.IIS属性解析
KeyType[0] =IisWebVirtualDir // Schema类名表明操作的目录类型
// 【虚拟目录】
Path[0] =D:\WebSiteTest // 虚拟目录|本地路径
// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象
de.Properties["Path"][0] = 路径字符串
AccessFlags[0] =513 // 虚拟目录|读取-写入
// 1. 虚拟目录|应用程序设置|执行权限为“无”时
// (1)脚本资源访问
// 不可读取且不可写入为16;可读取不可写入为17;
// 可写入不可读取为18;可读取且可写入为19
// (2)无脚本资源访问
// 不可读取且不可写入为0;可读取不可写入为1;
// 可写入不可读取为2;可读取且可写入为3
// 2. 虚拟目录|应用程序设置|执行权限为“纯脚本”时
// (1)脚本资源访问
// 不可读取且不可写入为528;可读取不可写入为529;
// 可写入不可读取为530;可读取且可写入为531
// (2)无脚本资源访问
// 不可读取且不可写入为512;可读取不可写入为513;
// 可写入不可读取为514;可读取且可写入为515
// 3. 虚拟目录|应用程序设置|执行权限为“脚本和可执行文件”时
// (1)脚本资源访问
// 不可读取且不可写入为532;可读取不可写入为533;
// 可写入不可读取为534;可读取且可写入为535
// (2)无脚本资源访问
// 不可读取且不可写入为516;可读取不可写入为517;
// 可写入不可读取为518;可读取且可写入为519
// .NET对应属性如下,其中de为虚拟目录对应的DirectoryEntry对象
de.Properties["AccessRead"][0] = bool值; // 读取
de.Properties["AccessWrite"][0] = bool值; // 写入
de.Properties["AccessScript"][0] = bool值; // 脚本资源访问
de.Properties["AccessExecute"][0]......
DirectoryEntry.Properties遍历IIS属性(1)(2009-07-19 19:59:00)
摘要:一.平台:Windows XP SP3+ IIS 5.1 + Visual Studio 2005
.NET框架下,System.DirectoryServices命名空间中的DirectoryEntry提供了活动目录组件管理功能,它调用ADSI操作IIS。
二.DirectoryEntry.Properties遍历IIS Web虚拟目录和Ftp虚拟目录属性
using System;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
namespace IISVirDirProperties
{
class Program
{
static void Main(string[] args)
{
try
{
Console.WriteLine("请输入欲查询的虚拟目录类型:");
Console.WriteLine("0代表IIS Web虚拟目录");
Co......
ADSI简介(1)(2009-07-16 01:07:00)
摘要:一、ADSI简介
ADSI (Active Directory Services Interface)是Microsoft提供的目录服务接口,它统一了许多底层服务的编程接口,程序员可以使用一致的对象技术来访问这些底层服务。ADSI把这些服务的公共部分提取出来,同时隔离出相异的部分,程序员可以用统一的接口访问底层服务的公共部分,并延伸到底层服务的专有部分。
为了说明ADSI的接口标准和用法,首先我们解释几个重要的概念:
目录(Directory):目录类似于一个数据库,它通常包含一些描述性的、基于属性的信息。
目录服务(DirectoryService)既是一个信息管理工具,同时也是一个面向最终用户的工具。类似于网络硬件设施的集线器(hub)的概念,目录服务相当于软件集线器。
活动目录(Active Directory):活动目录是Microsoft在Windows 2000中实现的目录服务,它不仅实现了作为一般目录服务的特性,包括安全特性、分布特性以及复制特性等。它同时也扩充了一些新的特性,以便使得目录信息更加易于管理和搜索。活动目录在实现目录服务的同时,充分考虑了目录信息的可伸缩性,从包含上百个对象的单服务器结构到成千上百服务器的百万以上的对象信息,它都可以正常工作。
目录服务是一个抽象的概念,从用户使用的角度来看,通常最为关心的是目录的名字空间以及相关的访问协议。名字空间限定了目录服务的描述能力,而访问协议必须要标准化,以便支持分布式特性。访问协议的标准为LDAP(Light-weight Directory Access Protocol)协议,它是建立在TCP/IP基础上的目录服务协议,它的信息模型包括了数据和名字空间。与其它Internet协议不同的是,LDAP还提供了一组API以便简化LDAP应用的编写工作。
LDAP也遵守客户-服务器模型,包含目录数据的一个或多个LDAP服务器建立起一个LDAP目录树,LDAP客户通过网络连接到服务器,向服务器发出请求或者执行一些操作。LDAP服务器响应客户的请求,或者把客户的请求指引到其它包含客户指定信息的另外的LDAP服务器上。不管客户连接到哪个LDAP服务器上,他所看到的目录树视图应该是一样的。
Microsoft提供了ADSI用于开发客户方的目录服务应用系统。ADSI是一组COM接口标准,它通过......
理解session机制(2009-05-04 21:01:00)
摘要: session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。
保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID,而。比如weblogic对于web应用程序生成的cookie,JSESSIONID=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764,它的名字就是JSESSIONID。
由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://...../xxx;jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
另一种是作为查询字符串附加在URL后面,表现形式为http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV......
ASP.NET Doorstep之 在HTML中嵌入C#代码(2008-07-18 00:57:00)
摘要:
一.使用<% %>在HTML中嵌入C#代码
打开ASPX页面Default.aspx,首先在<title> </title>之间添加标题“使用%HTML中嵌入C#“,再在其中的<div> </div>标签中间输入以下代码:
<title>使用%HTML中嵌入C#</title>
…
<div>
<%
int i;
for (i = 0; i < 10; i++)
{
Response.Write(i.ToString());
Response.Write("在html中嵌入C#代码示例");
Response.Write("<br />");
}
&n......