HttpDirectory.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:4k
源码类别:

CA认证

开发平台:

Visual C++

  1. /*
  2. Module : HttpDirectory.h
  3. Purpose: Defines the interface for the CHttpDirectory class
  4. Created: PJN / 21-02-2003
  5. Copyright (c) 2003 - 2005 by PJ Naughter.  (Web: www.naughter.com, Email: pjna@naughter.com)
  6. All rights reserved.
  7. Copyright / Usage Details:
  8. You are allowed to include the source code in any product (commercial, shareware, freeware or otherwise) 
  9. when your product is released in binary form. You are allowed to modify the source code in any way you want 
  10. except you cannot modify the copyright details at the top of each module. If you want to distribute source 
  11. code with your application, then you are only allowed to distribute versions released by the author. This is 
  12. to maintain a single distribution point for the source code. 
  13. */
  14. /////////////////////////////// Defines ///////////////////////////////////////
  15. #ifndef __HTTPDIRECTORY_H__
  16. #define __HTTPDIRECTORY_H__
  17. #ifndef W3MFC_EXT_CLASS
  18. #define W3MFC_EXT_CLASS
  19. #endif
  20. /////////////////////////////// Classes ///////////////////////////////////////
  21. /// Forward declaration
  22. class CHttpClient;
  23. //The values relating to a single directory which the web server handles
  24. class W3MFC_EXT_CLASS CHttpDirectory
  25. {
  26. public:
  27. //Constructors / Destructors
  28.   CHttpDirectory();
  29.   ~CHttpDirectory();
  30. //Accessors / Mutators
  31.   void SetAlias(const CString& sAlias);
  32.   void SetDirectory(const CString& sDirectory);
  33.   void SetDefaultFile(const CString& sDefaultFile);
  34.   void SetDirectoryListing(BOOL bListing) { m_bDirectoryListing = bListing; };
  35.   void SetWritable(BOOL bWritable) { m_bWritable = bWritable; };
  36.   void SetScript(BOOL bScript) { m_bScript = bScript; };
  37.   void SetUsername(const CString& sUsername) { m_sUsername = sUsername; };
  38.   void SetPassword(const CString& sPassword) { m_sPassword = sPassword; };
  39.   void SetRealm(const CString& sRealm) { m_sRealm = sRealm; };
  40.   CString GetAlias() const { return m_sAlias; };
  41.   CString GetDirectory() const { return m_sDirectory; };
  42.   CString GetDefaultFile() const { return m_sDefaultFile; };
  43.   BOOL    GetDirectoryListing() const { return m_bDirectoryListing; };
  44.   BOOL    GetWritable() const { return m_bWritable; };
  45.   BOOL    GetScript() const { return m_bScript; };
  46.   CString GetUsername() const { return m_sUsername; };
  47.   CString GetPassword() const { return m_sPassword; };
  48.   CString GetRealm() const { return m_sRealm; };
  49. //Methods
  50.   virtual void HandleDirectory(CHttpClient* pClient, BOOL bDirectory);
  51. protected:
  52. //Virtual methods
  53. #ifndef W3MFC_NO_ISAPI_SUPPORT
  54.   virtual void    TransmitISAPIRequest(CHttpClient* pClient, const CString& sDLL);
  55. #endif
  56.   virtual void    TransmitDirectory(CHttpClient* pClient);
  57.   virtual void    TransmitFile(CHttpClient* pClient);
  58.   virtual BOOL    HandleDirectoryAuthorization(CHttpClient* pClient);
  59. //Member variables
  60.   CString      m_sAlias;            //The directory which clients see e.g. "/cgi-bin"
  61.   CString      m_sDirectory;        //The local directory to map requests to
  62.   CString      m_sDefaultFile;      //The file to send when requesting this direcory without a filename
  63.   BOOL         m_bDirectoryListing; //If TRUE then a directory listing will be returned in preference to the default file
  64.   BOOL         m_bScript;           //If TRUE then this directory allows script execution
  65.   BOOL         m_bWritable;         //If TRUE then write access is allowed on this directory, need when supporting "DELETE"
  66.   CString      m_sUsername;         //If non-empty the username required to get access to this directory
  67.   CString      m_sPassword;         //the password associated with "m_sUsername" above.
  68.   CString      m_sRealm;            //The realm to display for this directory, if left empty then "m_sAlias" will be used instead
  69. };
  70. #endif //__HTTPDIRECTORY_H__