Tôi hiện đang cố gắng sử dụng TransportWithMessageCredentials và https trên dự án wcf của mình. Tôi đã đặt cả chế độ bảo mật máy khách và máy chủ = "TransportWithMessageCredential" và clientCredentialType = "Windows".CredentialCache.DefaultNetworkCredentials trống khi sử dụng TransportWithMessageCredential
Khi tôi đi lấy thông tin đăng nhập từ CredentialCache.DefaultNetworkCredentials, tên người dùng, mật khẩu và tên miền đều trống.
Bất kỳ lý do nào tại sao chúng sẽ trống? Nếu chúng sẽ luôn trống rỗng, tôi sẽ lấy giấy uỷ nhiệm ở đâu?
Làm cách nào để chuyển thông tin xác thực người dùng đã đăng nhập vào dịch vụ mà không nhắc họ đăng nhập?
ràng buộc Khách hàng
<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>
ràng buộc
<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>
Mã để thiết lập tên người dùng và mật khẩu
ChannelFactory<IDiagnostic> test = new ChannelFactory<IDiagnostic>(DIAGNOSTIC_ENDPOINT_NAME);
test.Credentials.UserName.UserName = "TestUser";
test.Credentials.UserName.Password = "User";
return test.CreateChannel();
Bạn đang hỏi cách chuyển người dùng hiện tại đã đăng nhập vào Windows vào dịch vụ? – Jeremy
Có. Tôi muốn chuyển các thông tin đăng nhập (cửa sổ) của người dùng hiện đang đăng nhập vào dịch vụ. (tôi đã chỉnh sửa bài đăng gốc) – user851974
là dịch vụ được lưu trữ trong IIS? hoặc tự lưu trữ – EdmundYeung99