我已在2016年报告服务上实施了自定义安全性,并在浏览器URL栏(报告或报告服务器)上键入报告服务的URL后显示登录页面
我使用以下代码传递凭据 当我使用代码没有我的安全扩展它工作,看起来像这样
ICredentials _executionCredentials;
CredentialCache myCache = new CredentialCache();
Uri reportServerUri = new Uri(ReportServerUrl);
myCache.Add(new Uri(reportServerUri.GetLeftPart(UriPartial.Authority)),
"NTLM", new NetworkCredential(MyUserName, MyUserPassword));
_executionCredentials = myCache;
当我使用安全扩展的代码时,它不起作用,看起来像这样
ICredentials _executionCredentials;
CredentialCache myCache = new CredentialCache();
Uri reportServerUri = new Uri(ReportServerUrl);
myCache.Add(new Uri(reportServerUri.GetLeftPart(UriPartial.Authority)),
"Basic", new NetworkCredential(MyUserName, MyUserPassword));
_executionCredentials = myCache;
我得到一个异常说" 对此POST请求的响应不包含'位置'头。这个客户端不支持。"当我实际使用此凭据时
"基本"错误的选择?
有没有人这样做过?
更新1 事实证明我的SSRS期待一个授权cookie 我无法通过(根据提琴手,没有cookie)
HttpWebRequest request;
request = (HttpWebRequest)HttpWebRequest.Create("http://mylocalcomputerwithRS/Reports_SQL2016/api/v1.0");
CookieContainer cookieJar = new CookieContainer();
request.CookieContainer = cookieJar;
Cookie authCookie = new Cookie("sqlAuthCookie", "username:password");
authCookie.Domain = ".mydomain.mylocalcomputerwithRS";
if (authCookie != null)
request.CookieContainer.Add(authCookie);
request.Timeout = -1;
HttpWebResponse myHttpWebResponse = (HttpWebResponse)request.GetResponse();
答案 0 :(得分:0)
我就是这样的(SSRS 2017; api v2.0)。我从Fiddler那里获取了“身体”的价值:
li