Ich habe eine sehr einfache WFCSerice geschrieben, die den Windows-Benutzernamen zurückgibt. Hier ist der Client-Seite Code:Basic Authentication scheint keinen Sicherheits-Header zu haben
public Form1()
{
ServiceReference1.Service1Client s1 = new ServiceReference1.Service1Client();
s1.ClientCredentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
string str = s1.ReturnWindowsUsername();
InitializeComponent();
}
ich die Anmeldeinformationen in den HTTP-Header sehen können mit Fidddler:
ich versucht habe, das Gleiche mit Basic Authentication (Zugriff auf eine andere Bahn zu tun Dienst, der die Standardauthentifizierung unterstützt). Hier ist der Client-Seite Code:
public Form1()
{
InitializeComponent();
ServiceReference1.Service1Client s1 = new ServiceReference1.Service1Client();
s1.ClientCredentials.UserName.UserName = "testuser";
s1.ClientCredentials.UserName.Password = "testpassword";
string str = s1.GetData(1);
}
Hier ist der Screenshot von Fiddler, wenn Basis-Authentifizierung:
Warum gibt es nichts in der Kopfzeile, wenn Basis-Authentifizierung verwenden. Der Standardauthentifizierungsdienst scheint wie erwartet zu funktionieren. Hier ist die Antwort (interessanter es erscheinen zwei Anfragen und zwei Antworten sein):
Haben Sie die anonyme Authentifizierung deaktiviert und die Standardauthentifizierung deaktiviert? ed in IIS? Der Berechtigungsheader wird erst nach einer 401-Anfrage vom Server zur Anfrage hinzugefügt. Wenn die Anfrage anonym erlaubt ist, gibt es keine 401 und daher keine Notwendigkeit für den Header. – user1429080
@ user1429080, beide sind aktiviert. – w0051977
Versuchen Sie, die anonyme Authentifizierung zu deaktivieren. Macht es einen Unterschied? – user1429080