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); } }
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); }