隐藏SSRS授权

时间:2018-08-22 18:10:01

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

更新

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

旧版Q

我在iframe中具有BI报表的应用程序和Microsoft服务器。 我正在尝试将跨域ajax请求发送到报表服务器,但它不起作用,因为对跨域的第一个请求是OPTIONS。我的阿贾克斯从来没有 工作了。 我的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
 });

请问有人可以帮忙吗。

1 个答案:

答案 0 :(得分:0)

要启用CORS到SSRS:

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

设置  -将 AccessControlAllowCredentials 设置为true <-以允许传递cookie  - AccessControlAllowOrigin 到其他服务器的URL,以便OPTION请求可以通过