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