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 principale dell'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
Classe EndpointIdentity UPN associata al parametro upnName
specificato.
Eccezioni
upnName
è null
.
Esempio
Nell'esempio di codice seguente viene mostrato 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 durante l'esecuzione dell'autenticazione SSPI con l'endpoint.
Questo metodo statico crea un'istanza di UpnEndpointIdentity chiamando il relativo costruttore UpnEndpointIdentity con il parametro upnName
come parametro di input.
Se il parametro upnName
viene specificato con una stringa vuota, l'autenticazione passa, se possibile, da Kerberos a NTLM. Se AllowNtlm è false
, WCF esegue un'operazione ottimale per generare un'eccezione se viene usato NTLM. Si noti che l'impostazione di questa proprietà su false
potrebbe non impedire l'invio di credenziali NTLM nella rete.