Freigeben über


EndpointIdentity.CreateUpnIdentity(String) Methode

Definition

Erstellt eine Benutzerprinzipalnamenidentität (UPN) mit einem angegebenen Namen.

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

Parameter

upnName
String

Der Name für die UPN-Identität.

Gibt zurück

Ein UPN EndpointIdentity , der dem angegebenen Zugeordnet upnNameist.

Ausnahmen

upnName ist null.

Beispiele

Der folgende Code zeigt, wie diese Methode aufgerufen wird.

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;
        }
    }
}

Hinweise

Ein sicherer WCF-Client, der eine Verbindung mit einem Endpunkt mit dieser Identität herstellt, verwendet den UPN beim Ausführen der SSPI-Authentifizierung mit dem Endpunkt.

Diese statische Methode erstellt eine Instanz des Aufrufs des Konstruktors mithilfe des Eingabeparameters.This static method creates an instance of UpnEndpointIdentity by calling its constructor, UpnEndpointIdentityusing upnName as the input parameter.

Wenn upnName mit einer leeren Zeichenfolge angegeben wird, wird die Authentifizierung nach Möglichkeit von Kerberos auf NTLM zurückfallen. Wenn AllowNtlm ja false, versucht WCF, eine Ausnahme auszuwerfen, wenn NTLM verwendet wird. Beachten Sie, dass das Festlegen dieser Eigenschaft false möglicherweise nicht verhindert, dass NTLM-Anmeldeinformationen über die Verbindung gesendet werden.

Gilt für: