Obecnie próbuję użyć TransportWithMessageCredentials i https w moim projekcie wcf. Ustawiłem tryb bezpieczeństwa klienta i serwera = "TransportWithMessageCredential" i clientCredentialType = "Windows".CredentialCache.DefaultNetworkCredentials empty przy użyciu TransportWithMessageCredential
Kiedy idę do uzyskania poświadczeń z CredentialCache.DefaultNetworkCredentials, nazwa użytkownika, hasło i domena są puste.
Czy są jakieś powody? Jeśli będą one zawsze puste, gdzie mogę uzyskać dane uwierzytelniające?
W jaki sposób mogę przekazać zalogowane dane logowania do usługi bez pytania o login?
wiążące Client
<basicHttpBinding>
<binding name="ClientHttpEndpoint" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:02:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="4194304" maxBufferPoolSize="524288" maxReceivedMessageSize="4194304"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
wiążące
<basicHttpBinding>
<binding name="WindowsTransportCredentialBinding" maxBufferSize="524288"maxReceivedMessageSize="524288">
<readerQuotas maxDepth="128" maxStringContentLength="1048576" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
...
<service name="Test.DiagnosticService">
<endpoint binding="basicHttpBinding" bindingConfiguration="WindowsTransportCredentialBinding" name="ClientDiagnosticEndpoint" contract="Test.IDiagnostic" />
</service>
kod, aby ustawić nazwę użytkownika i hasło
ChannelFactory<IDiagnostic> test = new ChannelFactory<IDiagnostic>(DIAGNOSTIC_ENDPOINT_NAME);
test.Credentials.UserName.UserName = "TestUser";
test.Credentials.UserName.Password = "User";
return test.CreateChannel();
Pytasz jak przekazać bieżący użytkownik zalogowany do systemu Windows do usługi? – Jeremy
Tak. Chciałbym przekazać aktualnie zalogowane poświadczenia użytkownika (Windows) do usługi. (redagowałem oryginalny wpis) – user851974
to usługa hostowana w IIS? lub self hosted – EdmundYeung99