Aracılığıyla paylaş


EndpointIdentity.CreateUpnIdentity(String) Yöntem

Tanım

Belirtilen ada sahip bir kullanıcı asıl adı (UPN) kimliği oluşturur.

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

Parametreler

upnName
String

UPN kimliğinin adı.

Döndürülenler

Belirtilen upnNameile ilişkilendirilmiş bir UPNEndpointIdentity.

Özel durumlar

upnName, null değeridir.

Örnekler

Aşağıdaki kodda bu yöntemin nasıl çağrılacakları gösterilmektedir.

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;
        }
    }
}

Açıklamalar

Bu kimlikle bir uç noktaya bağlanan güvenli bir WCF istemcisi, uç noktayla SSPI kimlik doğrulaması gerçekleştirirken UPN'yi kullanır.

Bu statik yöntem, UpnEndpointIdentitygiriş parametresi olarak kullanarak upnName oluşturucusunu çağırarak öğesinin bir örneğini UpnEndpointIdentity oluşturur.

Boş bir dizeyle belirtilirse upnName , mümkünse kimlik doğrulaması Kerberos'tan NTLM'ye geri döner. ise AllowNtlmfalse, NTLM kullanılıyorsa WCF özel durum oluşturmak için en iyi çabayı gösterir. Bu özelliğin olarak false ayarlanmasının NTLM kimlik bilgilerinin kablo üzerinden gönderilmesini engelleyebileceğini unutmayın.

Şunlara uygulanır