Support issuing tokens with custom NameFormat for issued claims

By default, NameFormat of all the claims that Identify returns to a service provider is urn:oasis:names:tc:SAML:2.0:attrname-format:basic. Issuing claims that have a custom NameFormat can be done either by using External Claims Transformation or Scripting Claim Transformation. For instance, you can create a Scripting Claim Transformation using Identify*Admin and put in the following code snippet:

foreach (var identity in ClaimsPrincipal.Identities)
{
foreach (var claim in identity.Claims)
{
claim.Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:custom:name:format";
}
}

Apply that Claim Transformation to a connection and perform a login.

Here is the result:
Before applying the transformation:

<Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<AttributeValue>SystemSetupAdmin</AttributeValue>
</Attribute>
<Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<AttributeValue>UserAdmin</AttributeValue>

After:

<Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" NameFormat="urn:custom:name:format">
<AttributeValue>SystemSetupAdmin</AttributeValue>
</Attribute>
<Attribute Name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" NameFormat="urn:custom:name:format">
<AttributeValue>UserAdmin</AttributeValue>