EndpointIdentity.CreateUpnIdentity(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.