博文
Windows下安装OpenSSL及其使用(2009-09-19 16:56:00)
摘要:1. 下载最新版本的Perl,安装后重启系统。
http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.822-MSWin32-x86-280952.zip
2.下载 latest openssl并解压到C:\openssl-0.9.8k。
http://www.openssl.org/source/
参考openssl目录下的install.win32说明进行安装:
1、进入解压目录。
>cd C:\openssl-0.9.8k
2、运行Configure。
>perl Configure VC-WIN32
如不成功会有明显提示。
3、创建Makefile文件。
>ms\do_ms
推荐使用这种方式,另外两种方式 如果使用也必须保证本机有编译器才能使用。
:ms\do_masm (默认vc 自带的编译器;也也以自己下载安装)
:ms\do_nasm (需要自己下载)
4、配置VC环境变量。
>cd C:\Program Files\Microsoft Visual Studio\VC98\Bin
>vcvars32.bat
5、编译动态链接库。
>cd C:\openssl-0.9.8k
>nmake -f ms\ntdll.mak
如果编译成功,最后的输出都在out32dll目录下:包括可执行文件、两个dll(ssleay32.lib, libeay32.lib)和两个lib文件(ssleay32.dll, libeay32.dll)。
6、为VC添加头文件和静态链接库路径。
ToolsàOptionsàDirectores,在Include files中增加C:\openssl-0.9.8k \inc32目录;在Libray files中增加C:\openssl-0.9.8k\out32dll。
7、编写OpenSSL程序,可参考C:\openssl-0.9.8k\demos
(1)包含相应头文件
#include <openssl/***.h>
(2) 添加静态链接库
#pragma comment(lib, "libeay32.lib"......
按钮添加ToolTip(2009-08-19 21:25:00)
摘要:一.首先创建基于对话框的MFC工程TipBtn,添加成员变量UINT m_nBtnID和CRect m_rcBtn,拖放按钮IDC_BUTTON_ADD到对话框中。本例程动态创建含有提示的按钮。
二. 为对话框添加ToolTip支持,在CTipBtnDlg的头文件中定义CtoolTipCtrl型控件变量
m_tooltip。
// TipBtnDlg.h
class CTipBtnDlg : public Cdialog
{
// ……
// Implementation
public:
UINT m_nBtnID = WM_USER + 101; // 按钮ID
CRect m_rcBtn = CRect(10, 40, 10 + 40, 40 + 30); // 按钮的大小和位置
protected:
CToolTipCtrl m_tooltip;
// ……
}
三.在CTipBtnDlg的OnInitDialog函数中创建ToolTipCtrl并激活。
(1)BOOL CToolTipCtrl::Create( CWnd* pParentWnd, DWORD dwStyle = 0 );
参数:
pParentWnd
指定工具提示控件的父窗口,通常是一个CDialog。它不能是NULL。
dwStyle
指定工具提示控件的风格,可以是任意Windows风格的组合。
若|TTS_ALWAYSTIP则不管工具栏所属窗口是否被激活,提示都会出现。
(2)void CToolTipCtrl::Activate( BOOL bActivate );
若bActivate=TRUE,即工具提示控件被激活,当光标路过一个向提示控件注册过的工具上时就会显示提示信息;
若bActivate=FALSE,即工具提示控件未被激活,则不会显示工具提示信息,即使是光标路过一个工具上。
// TipBtnDlg.cpp
BOOL CTipBtnDlg::OnInitDialog()
{
// ……
m_tooltip.Create(this); // 创建Tool......
基于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......
同步IWAM和IUSR账户解决HTTP-500错误(2009-07-19 13:52:00)
摘要:装了IIS服务组件后,系统就会生成ISUR和IWAM这两个帐户。
(1)IUSER是Internet 来宾帐户,匿名访问 Internet 信息服务的内置帐户
(2)IWAM是启动 IIS 进程帐户,用于启动进程外应用程序的 Internet 信息服务的内置帐户
IUSR_ComputerName和IWAM_ComputerName帐号保存在三个位置:
1、User Manager for Domains (Windows NT) or Local Users and Groups (Windows XP),系统的SAM文件中。
2、Microsoft Transaction Server (Windows NT) or Component Services (Windows XP) ,系统的SAM文件中。
3、Internet Information Server (IIS) 的METADATA数据文件中。
如果三个位置的用户名和密码不能同步,就会出现错误,造成asp文件不能访问,出现HTTP错误,例如HTTP-500内部服务器错误。
在 Windows NT 4.0 中尝试获取密码时,密码显示为明文;但在 Windows XP 中,密码显示为星号。若要在 Windows XP中也让密码显示为明文,必须修改 Adsutil.vbs,使它显示明码。为此,打开C:\Inetpub\AdminScripts\adsutil.vbs,找到631行:
631 If (IsSecureProperty(ObjectParameter,MachineName) = True) Then
将True修改为False。
命令行修改脚本文件AdminScripts|adsutil.vbs需要调用csript.exe,获取或设置IIS密码的命令是cscript.exe adsutil.vbs get/set xxxxxx
在CMD下运行如下命令
C:\Documents and Settings\Administrator>cd /d c:\Inetpub\Adminscripts
// (1)获取IWAM和IUSR账户密码
// 获取 IWAM 帐户密码
C:\Inetpub\AdminScripts>c......