2009-06-04 19 views

cevap

43

Çağrılanan web hizmeti, tümleşik güvenlik pencerelerini kullanıyorsa, geçerli WindowsIdentity numaralı telefondan bir NetworkCredential oluşturmak, web hizmetinin geçerli kullanıcı pencerelerini kullanmasına izin vermek için yeterli olmalıdır. Bununla birlikte, web hizmeti farklı bir güvenlik modeli kullanıyorsa, mevcut kimlikten bir kullanıcı parolası çıkarmanın herhangi bir yolu yoktur ... kendiniz ve güvensiz olacak, geliştiricinin kullanıcı şifrelerinizi çalmasına olanak tanır. . Kullanıcınızın şifresini sağlaması için bir yol sağlamanız ve tekrar tekrar sağlamak zorunda olmalarını istemiyorsanız, bazı güvenli önbelleklerde saklamanız gerekecektir.

Düzenleme: Geçerli kimlik kimlik bilgilerini almak için aşağıdaki kullanın:

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 
+0

WindowsIdentity'den bir NetworkCredential nasıl oluşturulabilir? –

+12

Teşekkürler! Az önce CredentialCache.DefaultNetworkCredentials kullandım. –

+1

GetCredential yöntemi, Windows XP/2003/Vista/2008'deki kayıtlı kullanıcı adlarından ve parolalarından kimlik bilgilerini döndürüyor mu? Burada ilgili bir soru sordum: http://stackoverflow.com/questions/994232/how-to-call-a-web-service-using-stored-credentials GetCredential, uri & quot; kimlik doğrulama türü, cevabım olacak. Bunu test edip geri raporlayacağım ... –

4

Kullanıcı adını System.Security.Principal.WindowsIdentity.GetCurrent() kullanarak alabilirsiniz, ancak geçerli kullanıcı şifresi almanın bir yolu yoktur!

+7

Ben geçerli kullanıcı şifresini almanın bir yolu yoktur umarım! :) Yapmak istediğim, 'geçerli kimlik bilgilerini' web hizmeti için varsayılan olarak kullanmaktır. –

İlgili konular