home *** CD-ROM | disk | FTP | other *** search
- // Auth.h : Declaration of the CIISAuth
-
- #ifndef __AUTH_H_
- #define __AUTH_H_
-
- #include "Mtx.h"
- #include "asptlb.h" // ASP symbols
- #include "resource.h" // main symbols
-
- /////////////////////////////////////////////////////////////////////////////
- // CIISAuth
- class ATL_NO_VTABLE CIISAuth :
- public CComObjectRootEx<CComMultiThreadModel>,
- public CComCoClass<CIISAuth, &CLSID_Auth>,
- public IDispatchImpl<IAuth, &IID_IAuth, &LIBID_NETAUTHLib>
- {
- public:
- CIISAuth();
- ~CIISAuth();
-
- DECLARE_REGISTRY_RESOURCEID(IDR_AUTH)
-
- BEGIN_COM_MAP(CIISAuth)
- COM_INTERFACE_ENTRY(IAuth)
- COM_INTERFACE_ENTRY(IDispatch)
- END_COM_MAP()
-
- // IAuth
- public:
- STDMETHOD(get_IsInGroup)(/*[in]*/ BSTR bstrGroupName, /*[out, retval]*/ BOOL *pfIsInGroup);
- STDMETHOD(get_IsAdmin)(/*[out, retval]*/ BOOL *pfIsAdmin);
- STDMETHOD(get_UsingHTTPS)(/*[out, retval]*/ BSTR *pbstrUsingHTTPS);
- STDMETHOD(get_AuthMethod)(/*[out, retval]*/ BSTR *pbstrMethod);
- STDMETHOD(get_Domain)(/*[out, retval]*/ BSTR *bstrDomain);
- STDMETHOD(put_Username)(/*[in]*/ BSTR strUserName);
- STDMETHOD(get_Username)(/*[out, retval]*/ BSTR *pstrUserName);
- STDMETHOD(get__NewEnum)(/*[out, retval]*/ IUnknown** retval);
-
- private:
- # define MAX_GROUPS 32 // Maximum number of groups a user can be in
-
- CComBSTR m_bstrUserName; // Name of the user
- CComBSTR m_bstrDomainName; // Domain of the user
- CComBSTR m_bstrAuthMethod; // IIS Authentication method used
- CComBSTR m_bstrHTTPS; // Are we using HTTPS?
- CComVariant m_varGroups[MAX_GROUPS];// Array of groups user belongs to
-
- DWORD m_cGroups; // # of groups user belongs to
-
- IRequest *m_pRequest; // COM Interface to ASP Request intrinsic
-
- // Helper functions
- void BuildGroupList();
- BOOL IsInGroup(BSTR bstrGroupName);
- void BuildUserDetails();
-
- HRESULT InitInterfaces();
- void DestroyInterfaces();
-
- HRESULT GetIntrinsic(IGetContextProperties *pProps, WCHAR *szName, REFIID iid, void **ppv);
- HRESULT GetCertificateDetails();
- HRESULT GetServerVariables();
- };
-
- #endif //__AUTH_H_
-