EndpointIdentity.CreateUpnIdentity(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 upnName
ile 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.