protected virtual UserTokenPolicyCollection GetUserTokenPolicies(ApplicationConfiguration configuration, EndpointDescription description)
{
UserTokenPolicyCollection policies = new UserTokenPolicyCollection();
if (configuration.ServerConfiguration == null || configuration.ServerConfiguration.UserTokenPolicies == null)
{
return policies;
}
foreach (UserTokenPolicy policy in configuration.ServerConfiguration.UserTokenPolicies)
{
// ensure a security policy is specified for user tokens.
if (description.SecurityMode == MessageSecurityMode.None)
{
if (String.IsNullOrEmpty(policy.SecurityPolicyUri))
{
UserTokenPolicy clone = (UserTokenPolicy)policy.Clone();
clone.SecurityPolicyUri = SecurityPolicies.Basic256;
policies.Add(clone);
continue;
}
}
policies.Add(policy);
}
// ensure each policy has a unique id.
for (int ii = 0; ii < policies.Count; ii++)
{
if (String.IsNullOrEmpty(policies[ii].PolicyId))
{
policies[ii].PolicyId = Utils.Format("{0}", ii);
}
}
return policies;
}