EndpointIdentity.CreateUpnIdentity(String) Methode

Definitie

Hiermee maakt u een UPN-identiteit (User Principal Name) met een opgegeven naam.

public:
 static System::ServiceModel::EndpointIdentity ^ CreateUpnIdentity(System::String ^ upnName);
public static System.ServiceModel.EndpointIdentity CreateUpnIdentity(string upnName);
static member CreateUpnIdentity : string -> System.ServiceModel.EndpointIdentity
Public Shared Function CreateUpnIdentity (upnName As String) As EndpointIdentity

Parameters

upnName
String

De naam voor de UPN-identiteit.

Retouren

Een UPN EndpointIdentity die is gekoppeld aan de opgegeven upnName.

Uitzonderingen

upnName is null.

Voorbeelden

De volgende code laat zien hoe u deze methode aanroept.

namespace TestPrincipalPermission
{
    class PrincipalPermissionModeWindows
    {

        [ServiceContract]
        interface ISecureService
        {
            [OperationContract]
            string Method1();
        }

        class SecureService : ISecureService
        {
            [PrincipalPermission(SecurityAction.Demand, Role = "everyone")]
            public string Method1()
            {
                return String.Format("Hello, \"{0}\"", Thread.CurrentPrincipal.Identity.Name);
            }
        }

        public void Run()
        {
            Uri serviceUri = new Uri(@"http://localhost:8006/Service");
            ServiceHost service = new ServiceHost(typeof(SecureService));
            service.AddServiceEndpoint(typeof(ISecureService), GetBinding(), serviceUri);
            service.Authorization.PrincipalPermissionMode = PrincipalPermissionMode.UseAspNetRoles;
            service.Open();

            EndpointAddress sr = new EndpointAddress(
                serviceUri, EndpointIdentity.CreateUpnIdentity(WindowsIdentity.GetCurrent().Name));
            ChannelFactory<ISecureService> cf = new ChannelFactory<ISecureService>(GetBinding(), sr);
            ISecureService client = cf.CreateChannel();
            Console.WriteLine("Client received response from Method1: {0}", client.Method1());
            ((IChannel)client).Close();
            Console.ReadLine();
            service.Close();
        }

        public static Binding GetBinding()
        {
            WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message);
            binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
            return binding;
        }
    }
}

Opmerkingen

Een beveiligde WCF-client die verbinding maakt met een eindpunt met deze identiteit, gebruikt de UPN bij het uitvoeren van SSPI-verificatie met het eindpunt.

Met deze statische methode maakt u een exemplaar van UpnEndpointIdentity door de constructor aan te roepen, UpnEndpointIdentitymet behulp van upnName de invoerparameter.

Als upnName wordt opgegeven met een lege tekenreeks, valt de verificatie zo mogelijk terug van Kerberos naar NTLM. Als AllowNtlm dat het zo is false, doet WCF er alles aan om een uitzondering te genereren als NTLM wordt gebruikt. Houd er rekening mee dat door deze eigenschap in te stellen false mogelijk niet voorkomt dat NTLM-referenties via het netwerk worden verzonden.

Van toepassing op