急……急……关于IIS过滤器的安装问题?

wuhf 2003-08-20 08:34:17
加精
我用VC的CHttpFilter类作了一个IIS的过滤器,现在我想用程序自动把他安装到IIS中并且启用它,怎么做啊?

务必请高手帮忙啊。
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhf 2003-08-24
  • 打赏
  • 举报
回复
非常感谢。我这就试试。
wuhf 2003-08-24
  • 打赏
  • 举报
回复
太感谢了。我已经成功了。立刻结贴。
masterz 2003-08-23
  • 打赏
  • 举报
回复
#include <Iads.h>
#include <Adshlp.h>
#include <activeds.h>
#pragma comment(lib,"ActiveDS.lib")
#pragma comment(lib,"adsiid.lib")
#include "comdef.h"
#include <comutil.h>

void CGetIisportView::OnAddfilter()
{//code snippet by masterz with VC.NET2003, WindowsXP
IADsContainer* iContainer=NULL;
IADs* iAds=NULL;
VARIANT varValue;
IADs* pFilters=NULL;
wchar_t* filterdllname=L"testfilter.dll";
if(ADsGetObject(L"IIS://localhost/w3svc/Filters",IID_IADsContainer,(void**)&iContainer)==S_OK)
{
iContainer->QueryInterface(IID_IADs,(void**)&pFilters);
VariantInit(&varValue);
pFilters->Get(_bstr_t("FilterLoadOrder"),&varValue);
if(varValue.vt==VT_BSTR && wcsstr(varValue.bstrVal,filterdllname)==NULL)
{
_bstr_t bstmp(varValue.bstrVal );
bstmp +=",testfilter.dll";
varValue.bstrVal = bstmp.Detach();
pFilters->Put(_bstr_t("FilterLoadOrder"),varValue);
pFilters->SetInfo();//+ varValue {"DA ISAPI Filter,sspifilt,Compression,pwsdata,md5filt,fpexedll.dll,ASP.NET_1.1.4322.573,NMISAPI" VT_BSTR} tagVARIANT
}
VariantClear(&varValue);
iContainer->GetObject(_bstr_t("IIsFilter"),_bstr_t("testfilter.dll"),(IDispatch**)&iAds);
if(NULL==iAds)
iContainer->Create(_bstr_t("IIsFilter"),_bstr_t("testfilter.dll"),(IDispatch**)&iAds);
if(iAds)
{
iAds->Put(_bstr_t("FilterPath"),_variant_t("C:\\masterz\\test\\testfilter\\Debug\\testfilter.dll"));
iAds->Put(_bstr_t("FilterDescription"),_variant_t("it is an test filter"));
long MD_NOTIFY_ORDER_LOW= 0x00020000 ;
iAds->Put(_bstr_t("FilterFlags"),_variant_t(MD_NOTIFY_ORDER_LOW));
iAds->SetInfo();
iAds->Release();
}
pFilters->Release();
iContainer->Release();
}
else
AfxMessageBox("failed to connect IIS, forget to call AfxOleInit()?");
}
masterz 2003-08-23
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q302/9/88.ASP&NoWebContent=1
HOW TO: Programmatically Add or Remove an ISAPI Filter in IIS by Using ADSI
Remove an ISAPI Filter by Using ADSI
The following sample code removes a global filter named "myFilter" from the ISAPI filters list on the master properties of the WWW Publishing service: Dim objFilterProps, objFilters
Dim strLoadOrder
Dim strFilterName
Dim intStartFilt

strFilterName = "myFilter"

Set objFilters = GetObject("IIS://LocalHost/W3SVC/Filters")
strLoadOrder = objFilters.FilterLoadOrder
If strLoadOrder <> "" Then
If Right(strLoadOrder, 1) <> "," Then
strLoadOrder = strLoadOrder & ","
End If
intStartFilt = InStr(strLoadOrder, strFilterName)
strLoadOrder = Mid(strLoadOrder, 1, intStartFilt - 1) & _
Mid(strLoadOrder, intStartFilt + Len(strFilterName) + 1, _
Len(strLoadOrder))
objFilters.FilterLoadOrder= strLoadOrder
objFilters.SetInfo
objFilters.Delete "IIsFilter", strFilterName
End If
Set objFilters = Nothing

Note that to remove the ISAPI filter from memory, you must restart IISADMIN service.
wuhf 2003-08-23
  • 打赏
  • 举报
回复
难道都不知道吗?连个思路都没有吗?

进来好像CSDN都没有高手了。可怜啊。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧