我有带授权的OData网络服务。
connection = new BaseWCFService.ASUTBEntities(new Uri("pathtoservice"));
connection.Credentials = CredentialCache.DefaultCredentials;
string SID = System.Security.Principal.WindowsIdentity.GetCurrent().User.Value;
var finduser = (from o in IS.connection.User
where o.SID == SID
select o).ToList();
此代码生成两个请求而不是一个。首先,它发送简单的text / html请求,得到401错误,然后发送带有身份验证的普通原子请求:
如何让他通过身份验证发出一个请求并避免发送text / html请求?
答案 0 :(得分:1)
我只是猜测,但我会说构造函数已经连接到web服务了。
可能是这样的:
new BaseWCFService.ASUTBEntities(new Uri("pathtoservice"), CredentialCache.DefaultCredentials);
或
connection = new BaseWCFService.ASUTBEntities();
connection.Credentials = CredentialCache.DefaultCredentials;
connection.Url = new Uri("pathtoservice");
但我再次猜测。但是,由于第一个请求具有未授权,因此构造函数似乎在没有凭据的情况下进行连接。在我执行基本功能之前,我先重写了函数并添加了凭据之前有一个类似的自定义函数,它已经解决了。 (在我的情况下,我仍然需要两个请求,因为我想从初始化中获得结果)