我用VC在IIS中创建了虚拟目录,但是创建虚拟目录中应用程序设置的执行权限参数总是设置为"脚本和可执行文件",应用程序保护参数设置为"低(IIS)进程"。请问大家怎样通过程序来修改这两个参数啊?
谢谢!!!!!!!!!!!!!!!
 

解决方案 »

  1.   

    这个问题的确没有遇到过,楼主可以到asp或者net的板块问一下。看看C#有没有相应的函数
      

  2.   

    HRESULT CreateVirtualDir(const char szServer[], const char szVirDirName[], const char szVirDir[])
    {
    CComPtr<IADsContainer> pADsContainer;
    HRESULT hr; //get site
    hr = ADsGetObject(CComBSTR(szServer), IID_IADsContainer, (void**) &pADsContainer);
    if(SUCCEEDED(hr))
    {
    //create v dir
    IADs* pADs=NULL;
    CComPtr<IDispatch> pDisp;
    hr=pADsContainer->Create(CComBSTR("IIsWebVirtualDir"), CComBSTR(szVirDirName), &pDisp);
    if(FAILED(hr))
    {
    #ifdef _DEBUG
    CString strDbg;
    strDbg.Format("Create VirtualDir error 0x%08X", hr);
    OutputDebugString(strDbg);
    AfxMessageBox("Create vir dir failed.\n");
    #endif
    return hr;
    }

    hr=pDisp->QueryInterface(IID_IADs, (void**)&pADs);
    if(SUCCEEDED(hr))
    {
    hr=pADs->Put(CComBSTR("Path"), CComVariant(szVirDir));
    hr=pADs->Put(CComBSTR("AccessRead"), CComVariant(VARIANT_TRUE));
    hr=pADs->Put(CComBSTR("AccessWrite"),CComVariant(VARIANT_TRUE));
    hr=pADs->Put(CComBSTR("AccessScript"),CComVariant(VARIANT_TRUE));//Scripts only..
    hr=pADs->Put(CComBSTR("AppFriendlyName"), CComVariant(szVirDirName));
    //hr=pADs->Put(CComBSTR("AccessExecute"), CComVariant(VARIANT_TRUE));//access scripts and run excutables..
    hr=pADs->Put(CComBSTR("AppIsolated"), CComVariant(2));
    hr=pADs->Put(CComBSTR("AspSessionTimeout"), CComVariant(60));
    hr=pADs->Put(CComBSTR("DefaultDoc"), CComVariant("LoginPage.aspx"));
    /*if(IsXPSP2() || Is2003SP1())//for Access denied error
    {
    TCHAR szCompName[256]={0};
    GetComputerName_ASM(szCompName, 256);
    CString strUserName = CString(szCompName) + _T("\\Administrator");
    hr=pADs->Put(CComBSTR("AnonymousUserName"), CComVariant(strUserName));
    hr=pADs->Put(CComBSTR("AuthNTLM"), CComVariant(VARIANT_TRUE));

    //AppCreate
    CComPtr<IISApp> pIIS;
    hr=pADs->QueryInterface(&pIIS);
    if(SUCCEEDED(hr))
    hr=pIIS->AppCreate(VARIANT_TRUE); hr=pADs->SetInfo();
    pADs->Release();
    } } return hr;
    }