EndpointIdentity.CreateUpnIdentity(String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy tożsamość głównej nazwy użytkownika (UPN) o określonej nazwie.
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
Parametry
- upnName
- String
Nazwa tożsamości nazwy UPN.
Zwraca
Nazwa UPN EndpointIdentity skojarzona z określoną nazwą upnName
.
Wyjątki
upnName
to null
.
Przykłady
Poniższy kod pokazuje, jak wywołać tę metodę.
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;
}
}
}
Uwagi
Bezpieczny klient WCF, który łączy się z punktem końcowym z tą tożsamością, używa nazwy UPN podczas przeprowadzania uwierzytelniania SSPI z punktem końcowym.
Ta metoda statyczna tworzy wystąpienie UpnEndpointIdentity obiektu przez wywołanie jego konstruktora , UpnEndpointIdentityprzy użyciu jako upnName
parametru wejściowego.
Jeśli upnName
jest określony z pustym ciągiem, uwierzytelnianie wraca z protokołu Kerberos do NTLM, jeśli jest to możliwe. Jeśli AllowNtlm jest to false
, program WCF dokłada wszelkich starań, aby zgłosić wyjątek, jeśli jest używany protokół NTLM. Należy pamiętać, że ustawienie tej właściwości na wartość może nie uniemożliwiać false
wysyłania poświadczeń NTLM za pośrednictwem przewodu.