EndpointIdentity.CreateUpnIdentity(String) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un'identità del nome dell'entità utente (UPN) con un nome specificato.
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
Parametri
- upnName
- String
Nome dell'identità UPN.
Restituisce
UPN EndpointIdentity associato all'oggetto specificato upnName.
Eccezioni
upnName è null.
Esempio
Il codice seguente illustra come chiamare questo metodo.
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;
}
}
}
Commenti
Un client WCF sicuro che si connette a un endpoint con questa identità usa l'UPN quando si esegue l'autenticazione SSPI con l'endpoint.
Questo metodo statico crea un'istanza di UpnEndpointIdentity chiamando il relativo costruttore, UpnEndpointIdentity, usando upnName come parametro di input.
Se upnName viene specificato con una stringa vuota, l'autenticazione esegue il fallback da Kerberos a NTLM, se possibile. Se AllowNtlm è false, WCF esegue il massimo sforzo per generare un'eccezione se viene usato NTLM. Si noti che l'impostazione di questa proprietà su false potrebbe non impedire l'invio delle credenziali NTLM sulla rete.