CLAUDE.md: cross-platform end-to-end verified
Verified from a Debian 13 client (.NET 10.0.203) against the Windows Historian using explicit Windows credentials and NegotiateAuthentication via GSSAPI/NTLM: - GetTagMetadataAsync: returns correct fields for SysTimeSec - BrowseTagNamesAsync: returns SysTimeHour, SysTimeMin, SysTimeSec - ProbeAsync: works over both transports Calls that touch the cert-transport binding directly (ReadRawAsync, GetSystemParameterAsync) still fail at X509 chain validation despite update-ca-certificates. .NET WCF on Linux uses its own X509Chain plumbing rather than the system CA bundle. Documented as a follow-up rather than fixed in this pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -106,10 +106,18 @@ The SDK builds and runs on Linux (Debian 13, .NET 10 SDK 10.0.203). `HistorianSs
|
|||||||
`HistorianWcfBindingFactory.CreateMdasNetNamedPipeBinding` and
|
`HistorianWcfBindingFactory.CreateMdasNetNamedPipeBinding` and
|
||||||
`CreateMdasNetTcpWindowsBinding` methods carry a `#pragma warning disable
|
`CreateMdasNetTcpWindowsBinding` methods carry a `#pragma warning disable
|
||||||
CA1416` documenting this.
|
CA1416` documenting this.
|
||||||
- ⏳ **Authenticated reads over `RemoteTcpCertificate` from Linux** — wired
|
- ✅ **Authenticated WCF calls via NegotiateAuthentication GSSAPI/NTLM**
|
||||||
to use NegotiateAuthentication's GSSAPI/NTLM path (`gss-ntlmssp` installed
|
from Linux — verified end-to-end with explicit credentials:
|
||||||
on Debian), but live verification requires an explicit Windows credential
|
`GetTagMetadataAsync` returned correct fields, `BrowseTagNamesAsync`
|
||||||
(`HISTORIAN_USER` / `HISTORIAN_PASSWORD`) which hasn't been exercised yet.
|
returned matching tags. Confirms the SDK's auth chain (Open2 → ValCl × N
|
||||||
|
→ service call) works cross-platform.
|
||||||
|
- ⚠️ **Calls that touch the cert-transport binding directly from Linux**
|
||||||
|
(`ReadRawAsync`, `GetSystemParameterAsync`, etc.) fail with X509 chain
|
||||||
|
validation even after `update-ca-certificates`. .NET WCF on Linux uses
|
||||||
|
its own X509Chain plumbing rather than the system CA bundle. Workarounds
|
||||||
|
are out of scope for this pass: install the cert into
|
||||||
|
`~/.dotnet/corefx/cryptography/x509stores/` per-user, or expose a
|
||||||
|
`ServerCertificateValidationCallback` on `HistorianClientOptions`.
|
||||||
|
|
||||||
### Remaining gaps
|
### Remaining gaps
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user