EndpointIdentity.CreateUpnIdentity(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает удостоверение имени участника-пользователя (UPN) с указанным именем.
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
Параметры
- upnName
- String
Имя идентификатора UPN.
Возвращаемое значение
EndpointIdentity UPN, связанный с заданным классом upnName
.
Исключения
upnName
имеет значение null
.
Примеры
В следующем примере кода показано, как вызвать этот метод.
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;
}
}
}
Комментарии
Защищенный клиент WCF, который подключается к конечной точке с этим удостоверением, использует имя участника-пользователя при проверке подлинности SSPI с помощью конечной точки.
Статический метод создает экземпляр UpnEndpointIdentity, вызывая его конструктор UpnEndpointIdentity, с использованием upnName
в качестве входного параметра.
Если для upnName
задана пустая строка, проверка подлинности возвращается от Kerberos к NTLM, если это возможно. Если AllowNtlm имеет значение false
, WCF делает все возможное, чтобы создать исключение, если используется NTLM. Обратите внимание, что установка для данного свойства значения false
не предотвращает отправки учетных данных NTLM по сети.