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.