Example #1
0
        private static void SetFlags(string server, string path, OwaIsapiFilter.FormsAuthPropertyFlags flags)
        {
            IMSAdminBase       imsadminBase = IMSAdminBaseHelper.Create(server);
            string             text         = "/LM" + path;
            SafeMetadataHandle safeMetadataHandle;
            int num = IMSAdminBaseHelper.OpenKey(imsadminBase, SafeMetadataHandle.MetadataMasterRootHandle, text, MBKeyAccess.Write, 15000, out safeMetadataHandle);

            using (safeMetadataHandle)
            {
                if (num == -2147024748)
                {
                    throw new FormsAuthenticationErrorPathBusyException(text);
                }
                if (num == -2147024893)
                {
                    throw new FormsAuthenticationMarkPathErrorPathNotFoundException(text);
                }
                if (num < 0)
                {
                    throw new OwaIsapiFilterException(Strings.FormsAuthenticationMarkPathErrorUnknownOpenError(text), num);
                }
                MetadataRecord metadataRecord = OwaIsapiFilter.CreateFormsRecord(MBAttributes.Inherit);
                using (metadataRecord)
                {
                    Marshal.WriteInt32(metadataRecord.DataBuf.DangerousGetHandle(), (int)flags);
                    num = imsadminBase.SetData(safeMetadataHandle, string.Empty, metadataRecord);
                }
                if (num == -2147024891)
                {
                    throw new FormsAuthenticationMarkPathAccessDeniedException(text, 45054);
                }
                if (num == -2147024888)
                {
                    throw new OutOfMemoryException();
                }
                if (num == -2147024893)
                {
                    throw new FormsAuthenticationMarkPathErrorPathNotFoundException(text);
                }
                if (num == -2146646008)
                {
                    throw new FormsAuthenticationMarkPathCannotMarkSecureAttributeException(text, 45054);
                }
                if (num < 0)
                {
                    throw new FormsAuthenticationMarkPathUnknownSetError(text, 45054, num);
                }
            }
            num = IisUtility.CommitMetabaseChanges(server);
            if (num < 0)
            {
                throw new OwaIsapiFilterException(Strings.CommitMetabaseChangesException(server), num);
            }
        }
Example #2
0
        private static int GetFlags(IMSAdminBase iisAdmin, string metabasePath, out OwaIsapiFilter.FormsAuthPropertyFlags flags)
        {
            flags = OwaIsapiFilter.FormsAuthPropertyFlags.None;
            int            result         = 0;
            MetadataRecord metadataRecord = OwaIsapiFilter.CreateFormsRecord(MBAttributes.None);

            using (metadataRecord)
            {
                int num;
                result = iisAdmin.GetData(SafeMetadataHandle.MetadataMasterRootHandle, metabasePath, metadataRecord, out num);
                flags  = (OwaIsapiFilter.FormsAuthPropertyFlags)Marshal.ReadInt32(metadataRecord.DataBuf.DangerousGetHandle());
            }
            return(result);
        }