EndpointIdentity.CreateUpnIdentity(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea una identidad de nombre principal de usuario (UPN) con un nombre especificado.
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
Parámetros
- upnName
- String
Nombre para la identidad UPN.
Devoluciones
UPN EndpointIdentity asociado al upnName especificado.
Excepciones
upnName es null.
Ejemplos
El siguiente código muestra cómo llamar a este método.
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;
}
}
}
Comentarios
Un cliente WCF seguro que se conecta a un punto de conexión con esta identidad usa el UPN al realizar la autenticación SSPI con el punto de conexión.
Este método estático crea una instancia de UpnEndpointIdentity llamando a su constructor, UpnEndpointIdentity, utilizando upnName como parámetro de entrada.
Si upnName se especifica con una cadena vacía, la autenticación se retirará de Kerberos a NTLM si es posible. Si AllowNtlm es false, WCF hace un mejor esfuerzo para producir una excepción si se usa NTLM. Tenga en cuenta que, aunque se establezca esta propiedad en false, es posible que se envíen igualmente las credenciales NTLM a través de la conexión.