【问题标题】:Make SSRS authorization hidden隐藏 SSRS 授权
【发布时间】:2019-03-19 09:15:51
【问题描述】:

更新

所以,我尝试使用 ajax 的原因是登录表单,当用户在应用程序中打开 SSRS 报告时会显示该表单。我有报告框架(两个不同的服务器),并希望在应用程序中对用户不可见授权。对于第一台服务器 - kuybit 我有它,但 SSRS 有其他身份验证表单类型,我遇到了麻烦。 如果有人知道更好的方法,除了 ajax 请求它可以提供帮助。

旧 Q 版

我在 iframe 中有用于 BI 报告的应用程序和 microsoft 服务器。 我正在尝试向报表服务器发送跨域 ajax 请求,但它不起作用,因为跨域的第一个请求是 OPTIONS。而我的ajax从来没有 工作。 我的ajax请求:

var path = route + ':444/ReportServer/Pages/ReportViewer.aspx' + reportName + '&rs:Command=Render&rc:stylesheet=HideToolBar';
 $.ajax({
   url: path,
   type: 'GET',
   headers: {
      'Access-Control-Allow-Headers': 'Authorization',
      'Content-Type':'application/xml',
      'Authorization' : 'Basic ' + btoa(ssrs_login + ":" + ssrs_password)}
 }).success(function (data) {
     //todo smth
 });

有人可以帮忙吗,拜托。

【问题讨论】:

  • 服务器是否接受跨域请求?服务器上是否启用了 CORS?你从服务器得到什么响应?
  • @AdamD 我收到了“401 未经授权”的回复。关于服务器 - 在你的问题之后不确定
  • CORS is Cross-Origin Resource Sharing 可以通过查看标题来确定。您可以通过查看开发人员工具在 chrome 或 Internet Explorer 中查看这些标题。我对 SSRS 了解不多,但根据这个 stackoverflow 帖子Enable CORS for Reporting Services,似乎 SSRS 对 API 不友好。
  • @jeffld 感谢。也许你知道我如何在没有 cors ajax 的情况下解决它(见更新的问题)?
  • 我认为身份冒充可能是一种可能性。这个post 有一些关于模拟报告服务的信息。

标签: javascript java ajax cross-domain ssrs-2012


【解决方案1】:

启用 CORS 到 SSRS:

  1. 打开 Microsoft SQL Server Studio
  2. 连接到服务器 -> 服务器类型(设置为“报告服务”)
  3. 登录->右击服务器根节点->属性
  4. 从“服务器属性”窗口中选择“高级”,找到“用户定义”,然后在此标题下找到所有 CORS 设置。

设置 - AccessControlAllowCredentials 为 true AccessControlAllowOrigin 到您的其他服务器的 URL,以便 OPTION 请求可以通过

【讨论】:

  • 如果这些设置未在该部分中列出,是否可以添加这些设置?
  • 可能会消失,我在某个地方读到过它,我认为它指的是旧版本,但它对我没有用,只要确保在连接之前选择报告,它们就会在那里
猜你喜欢
  • 2021-06-29
  • 1970-01-01
  • 2018-11-21
  • 2021-08-06
  • 2020-03-04
  • 2015-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多