1 //----------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //----------------------------------------------------------------
4 
5 namespace System.ServiceModel.XamlIntegration
6 {
7     using System;
8     using System.Diagnostics.CodeAnalysis;
9     using System.Runtime;
10     using System.Windows.Markup;
11     using System.ServiceModel.Activities;
12 
13     [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldBeSpelledCorrectly, Justification = "Upn is an acronym")]
14     [MarkupExtensionReturnType(typeof(UpnEndpointIdentity))]
15     public class UpnEndpointIdentityExtension : MarkupExtension
16     {
UpnEndpointIdentityExtension()17         public UpnEndpointIdentityExtension()
18         {
19         }
20 
UpnEndpointIdentityExtension(UpnEndpointIdentity identity)21         public UpnEndpointIdentityExtension(UpnEndpointIdentity identity)
22         {
23             if (identity == null)
24             {
25                 throw FxTrace.Exception.ArgumentNull("identity");
26             }
27             Fx.Assert(identity.IdentityClaim.Resource is string, "UpnEndpointIdentity claim resource is not string");
28             this.UpnName = (string)identity.IdentityClaim.Resource;
29         }
30 
31         [SuppressMessage(FxCop.Category.Naming, FxCop.Rule.IdentifiersShouldBeSpelledCorrectly, Justification = "Upn is an acronym")]
32         public string UpnName
33         { get; set; }
34 
ProvideValue(IServiceProvider serviceProvider)35         public override object ProvideValue(IServiceProvider serviceProvider)
36         {
37             return new UpnEndpointIdentity(this.UpnName);
38         }
39     }
40 }
41