1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Channels
{
using System.Xml;
using System.ServiceModel.Description;
using System.ServiceModel.Configuration;
static class UseManagedPresentationPolicyStrings
{
public const string UseManagedPresentationName = "UseManagedPresentation";
public const string RequireFederatedIdentityProvisioningName = "RequireFederatedIdentityProvisioning";
public const string UseManagedPresentationNamespace = "http://schemas.xmlsoap.org/ws/2005/05/identity";
public const string UseManagedPresentationPrefix = "ic";
}
public sealed class UseManagedPresentationBindingElementImporter : IPolicyImportExtension
{
void IPolicyImportExtension.ImportPolicy(MetadataImporter importer, PolicyConversionContext policyContext)
{
if (policyContext == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("policyContext");
XmlElement useManagedPresentationAssertion = PolicyConversionContext.FindAssertion(policyContext.GetBindingAssertions(),
UseManagedPresentationPolicyStrings.RequireFederatedIdentityProvisioningName, UseManagedPresentationPolicyStrings.UseManagedPresentationNamespace, true);
if (useManagedPresentationAssertion != null)
{
UseManagedPresentationBindingElement settings =
policyContext.BindingElements.Find<UseManagedPresentationBindingElement>();
if (null == settings)
{
settings = new UseManagedPresentationBindingElement();
policyContext.BindingElements.Add(settings);
}
}
}
}
}
|