- 浏览: 62896 次
- 性别:
- 来自: 烟台
最新评论
報表服務器
Overwritedatasources: true(是的重寫) false(不重寫)
TargetDatasourceFolder: 目標數據原始檔案夾,如果不存在,新建檔夾
TargetReportFolder:目標報表檔夾,如果不存在,新建檔夾
TargetServerUrl:目標報表的網址
在訪問遠端報表時,遇到了許可權問題。因為Sharepoint伺服器和報表伺服器分別在不同機器上。在Sharepoint伺服器上運行一切正常,但從其他機器訪問就報沒有許可權。
又是典型的double hop。
基本思想是在報表伺服器上建一個報表專用帳戶,讓Sharepoint伺服器以該用戶的身份調用報表服務。
用戶端 -〉(用戶真實身份) -〉SharePoint伺服器 -〉(類比報表專用帳戶身份)-〉SQL 2005報表伺服器
一、使用web service訪問的處理方法
處理比較簡單,在創建web service proxy類時,類比類比報表專用帳戶。
public ReportAdapter(string serverURL,string path)
{
ReportSvr = new ReportingServer.ReportingService();
ReportSvr.Credentials = new System.Net.NetworkCredential(“user”, “pwd”, “domain”);
…..
後面的代碼不變
}
二、使用ReportViewer控制項的處理方法
使用ReportViewer控制項時會麻煩很多。首先,我們不能直接用System.Net.NetworkCredential,必須自己實現一個介面Microsoft.Reporting.WebForms.IReportServerCredentials。
不過網上有很多現成的代碼,也不需要自己寫了。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Reporting.WebForms;
/// <summary>
/// Summary description for CustomReportCredentials
/// </summary>
[Serializable]
public class CustomReportCredentials : Microsoft.Reporting.WebForms.IReportServerCredentials
{
// local variable for network credential.
private string _UserName;
private string _PassWord;
private string _DomainName;
public CustomReportCredentials(string UserName, string PassWord, string DomainName)
{
_UserName = UserName;
_PassWord = PassWord;
_DomainName = DomainName;
}
public System.Security.Principal.WindowsIdentity ImpersonationUser
{
get
{
return null; // not use ImpersonationUser
}
}
public System.Net.ICredentials NetworkCredentials
{
get
{
// use NetworkCredentials
return new System.Net.NetworkCredential(_UserName, _PassWord, _DomainName);
}
}
public bool GetFormsCredentials(out System.Net.Cookie authCookie, out string user, out string password, out string authority)
{
// not use FormsCredentials unless you have implements a custom autentication.
authCookie = null;
user = password = authority = null;
return false;
}
}
需要注意[Serializable],因為我的頁面設置EnableSessionState=”True”,所有的資料都需要可以序列化。
有了類CustomReportCredentials,下面的事情就簡單了
protected void ButtonViewReport_Click(object sender, EventArgs e)
{
DateTime StartDate = System.Convert.ToDateTime(TextBoxStartDate.Value);
DateTime EndDate = System.Convert.ToDateTime(TextBoxEndDate.Value);
ReportParameter[] Parameters = new ReportParameter[2];
Parameters[0] = new ReportParameter(“startdate”, StartDate.ToShortDateString());
Parameters[1] = new ReportParameter(“enddate”, EndDate.ToShortDateString());
try
{
ReportViewer1.ServerReport.ReportServerUrl = new Uri(“http://ctc-bar:81/reportserver“);
ReportViewer1.ServerReport.ReportPath = “/BARReports/EBCdetaillist”;
ReportViewer1.ServerReport.ReportServerCredentials = new CustomReportCredentials(“user”, “pwd)”, “domain”);
ReportViewer1.ServerReport.SetParameters(Parameters);
}
catch (Microsoft.Reporting.WebForms.ReportSecurityException ex)
{
Response.Write(ex.Message);
}
catch (Exception ex2)
{
Response.Write(ex2.Message);
}
}
很奇怪,在設置ReportServerCredentials前,要對 ReportViewer1.ServerReport.ReportServerUrl和ReportViewer1.ServerReport.ReportPath賦值。但我明明已經在ReportViewer1的設計器中設了這兩個值。
如果不設置ReportServerCredentials,則不需要這樣。
//搜索按鈕
protected void btn_search_Click(object sender, EventArgs e)
{
List<ReportParameter> list = new List<ReportParameter>();
if (this.TextBox1.Text != “”)
{
list.Add(new ReportParameter(“userid”, this.TextBox1.Text.Trim()));
}
else
{
list.Add(new ReportParameter(“userid”));
}
ReportViewer1.ServerReport.SetParameters(list);
}
Overwritedatasources: true(是的重寫) false(不重寫)
TargetDatasourceFolder: 目標數據原始檔案夾,如果不存在,新建檔夾
TargetReportFolder:目標報表檔夾,如果不存在,新建檔夾
TargetServerUrl:目標報表的網址
在訪問遠端報表時,遇到了許可權問題。因為Sharepoint伺服器和報表伺服器分別在不同機器上。在Sharepoint伺服器上運行一切正常,但從其他機器訪問就報沒有許可權。
又是典型的double hop。
基本思想是在報表伺服器上建一個報表專用帳戶,讓Sharepoint伺服器以該用戶的身份調用報表服務。
用戶端 -〉(用戶真實身份) -〉SharePoint伺服器 -〉(類比報表專用帳戶身份)-〉SQL 2005報表伺服器
一、使用web service訪問的處理方法
處理比較簡單,在創建web service proxy類時,類比類比報表專用帳戶。
public ReportAdapter(string serverURL,string path)
{
ReportSvr = new ReportingServer.ReportingService();
ReportSvr.Credentials = new System.Net.NetworkCredential(“user”, “pwd”, “domain”);
…..
後面的代碼不變
}
二、使用ReportViewer控制項的處理方法
使用ReportViewer控制項時會麻煩很多。首先,我們不能直接用System.Net.NetworkCredential,必須自己實現一個介面Microsoft.Reporting.WebForms.IReportServerCredentials。
不過網上有很多現成的代碼,也不需要自己寫了。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Reporting.WebForms;
/// <summary>
/// Summary description for CustomReportCredentials
/// </summary>
[Serializable]
public class CustomReportCredentials : Microsoft.Reporting.WebForms.IReportServerCredentials
{
// local variable for network credential.
private string _UserName;
private string _PassWord;
private string _DomainName;
public CustomReportCredentials(string UserName, string PassWord, string DomainName)
{
_UserName = UserName;
_PassWord = PassWord;
_DomainName = DomainName;
}
public System.Security.Principal.WindowsIdentity ImpersonationUser
{
get
{
return null; // not use ImpersonationUser
}
}
public System.Net.ICredentials NetworkCredentials
{
get
{
// use NetworkCredentials
return new System.Net.NetworkCredential(_UserName, _PassWord, _DomainName);
}
}
public bool GetFormsCredentials(out System.Net.Cookie authCookie, out string user, out string password, out string authority)
{
// not use FormsCredentials unless you have implements a custom autentication.
authCookie = null;
user = password = authority = null;
return false;
}
}
需要注意[Serializable],因為我的頁面設置EnableSessionState=”True”,所有的資料都需要可以序列化。
有了類CustomReportCredentials,下面的事情就簡單了
protected void ButtonViewReport_Click(object sender, EventArgs e)
{
DateTime StartDate = System.Convert.ToDateTime(TextBoxStartDate.Value);
DateTime EndDate = System.Convert.ToDateTime(TextBoxEndDate.Value);
ReportParameter[] Parameters = new ReportParameter[2];
Parameters[0] = new ReportParameter(“startdate”, StartDate.ToShortDateString());
Parameters[1] = new ReportParameter(“enddate”, EndDate.ToShortDateString());
try
{
ReportViewer1.ServerReport.ReportServerUrl = new Uri(“http://ctc-bar:81/reportserver“);
ReportViewer1.ServerReport.ReportPath = “/BARReports/EBCdetaillist”;
ReportViewer1.ServerReport.ReportServerCredentials = new CustomReportCredentials(“user”, “pwd)”, “domain”);
ReportViewer1.ServerReport.SetParameters(Parameters);
}
catch (Microsoft.Reporting.WebForms.ReportSecurityException ex)
{
Response.Write(ex.Message);
}
catch (Exception ex2)
{
Response.Write(ex2.Message);
}
}
很奇怪,在設置ReportServerCredentials前,要對 ReportViewer1.ServerReport.ReportServerUrl和ReportViewer1.ServerReport.ReportPath賦值。但我明明已經在ReportViewer1的設計器中設了這兩個值。
如果不設置ReportServerCredentials,則不需要這樣。
//搜索按鈕
protected void btn_search_Click(object sender, EventArgs e)
{
List<ReportParameter> list = new List<ReportParameter>();
if (this.TextBox1.Text != “”)
{
list.Add(new ReportParameter(“userid”, this.TextBox1.Text.Trim()));
}
else
{
list.Add(new ReportParameter(“userid”));
}
ReportViewer1.ServerReport.SetParameters(list);
}
发表评论
-
控件的使用
2011-12-31 18:49 6281、AdRotator控件用法 <asp:AdRotat ... -
常用的简单算法
2011-11-17 20:38 784用二重循环实现冒泡排序 1 如何用二重循环将5个数字排序?N ... -
状态管理
2011-10-31 22:06 747内置对象方法 信息量大小 作用 ... -
现在免费的.Net空间越来越少了,我发现了个空间大,而且完全免费的
2011-10-30 12:33 10云空间-全面进入免费云时代-国内首家免费T级云空间! 云空间- ... -
Asp.Net小技巧合集
2011-09-15 18:33 77920120122 小雪 在google中找免费的电子书籍 搜索 ... -
根据数据库现有数据生成单号
2011-08-01 22:45 902/// <summary> /// ... -
FreeTextBox控件的用法
2011-08-01 22:42 1109下载网址:http://freetextbox.com/def ... -
RSS读取文章
2011-08-01 22:37 1061/// <summary> /// 加载R ... -
C#中发送Email
2011-08-01 22:29 1075// 引入命名空间 using System.Net; usi ... -
Treeview控件的用法
2011-07-31 22:30 1998//treeview控件的用法,据我现在看,以下方法在winf ... -
数据库读取和保存图片
2011-07-31 20:49 917//从数据库读取图片,并保存为11.jpg using (Sq ... -
绘制饼图
2011-07-31 20:38 602using System.Drawing; public pa ... -
WebGrid用法
2011-07-31 12:15 5209首先安装Infragistics.NetAdv ... -
封装的上传文件的方法
2011-03-19 18:24 1074//上传按钮 protected void Butt ... -
IO操作
2011-03-19 18:22 6661、創建目錄,支持多級,根據輸入的目錄地址 Director ... -
彈出提示框
2011-03-19 18:19 9291、Response.Write(“<script la ... -
Asp.net通用方法及属性
2011-03-19 17:57 7891. 在ASP.NET中专用属性: 获取服务器计算机名:P ... -
C#读写注册表操作类
2011-03-19 17:48 1243using System; using System.Coll ... -
保存DataTable的数据
2011-03-19 17:47 2209在botton的click事件中定义datatable,当cl ... -
在Asp.Net中使用事务
2011-03-16 21:37 685private string mConnStr = Confi ...
相关推荐
深入研究源代码,有助于提升对Java Web开发的理解,特别是对于报表系统的实现有重要的参考价值。在实际工作中,这样的源代码分析能力有助于我们更好地维护和优化现有的系统,或者开发出更符合业务需求的新系统。
2. **报表设计**:使用 Reporting Service 的 Report Designer 创建报表,并设置参数以允许用户选择父级项。可能需要创建多个报表层次,每个层次对应一个级别的数据。 3. **使用脚本**:在需要动态行为的地方(如...
在Android系统中,Bluetooth OPP(Object Push Profile)是一种用于设备间传输小文件的协议,它允许用户方便地发送图片、联系人、日历事件等数据。...对于具体问题的解决,需要根据Bugreport中的详细信息进行深入研究。
- **报表设计**:使用Report Designer(通常与Visual Studio集成),可以创建复杂的报表布局,包括表格、图表、图像、文本框等元素。 - **分页和呈现**:自动处理报表分页,支持HTML、PDF、Excel等多种格式的输出,...
### Comsys_Report_2007_Hughes:Comprehensive Study on Service Providers and Product Platforms #### 概述 《Comsys_Report_2007_Hughes》是一份全面的研究报告,涵盖了超过300家不同的服务提供商以及近30种...
这两个定位器将用于获取`ContentManagerService_Port`和`ReportService_Port`,这两个端口对象分别代表了与Cognos服务器上的内容管理和报表服务的交互接口。 ```java // 定义类成员变量 private ...
service.Url = "http://<server>/reportserver/reportservice2010.asmx"; // 激活报表执行 string reportPath = "/Reports/MyReport"; string historyID = ""; string devInfo = "<DeviceInfo><Toolbar>False...
在此基础上,进一步仿真了一种基于QoS(Quality of Service)的区分优先级的带宽分配算法,并提供了相应的仿真结果。 #### EPON系统与MPCP协议 ##### EPON系统结构 EPON是一种点到多点的无源光网络结构,其特点是...
动态带宽分配(Dynamic Bandwidth Allocation, DBA)算法对于EPON系统的高效运行至关重要,其目的是在满足服务质量(Quality of Service, QoS)的同时最大化网络带宽利用率。本文介绍了三种DBA算法: 1. **基于授权...
服务网格工具软件(Service Mesh Tools Software)是一种专门设计用于管理和服务之间通信的技术,它能够确保微服务架构下的应用程序组件能够高效、安全地交互。这些工具通常提供诸如负载均衡、故障恢复、监控、安全等...
- `service-report` 可能是报表服务,用于生成各类统计数据和报告。 - `service-oa` 涉及办公自动化,可能包含内部工作流程的管理。 - `java110-doc` 是文档或API文档,帮助开发者理解和使用系统。 - `service-...
Nmap,全称为Network Mapper,是一款广泛用于网络探测和安全审计的开源工具。...通过深入研究和扩展这个示例,开发者可以更好地理解和掌握Nmap在实际场景中的应用,提高网络安全管理和诊断的效率。
总结来说,MVM服务是一个基于Groovy构建的Web服务模块,它提供了网格服务用于数据展示,ReportService用于生成和管理报告,以及ID服务来处理用户认证和授权。这些组件共同构成了一个强大且完整的后端系统,支持MVM...
**Java EE Productivity Report 2011** Java Enterprise Edition(Java EE)是Sun Microsystems(后被Oracle收购)推出的一个企业级应用开发平台,它基于Java Standard Edition(Java SE),为构建可扩展、多层、...
丝网印刷版市场现状研究分析与发展前景预测报告 丝网印刷版是一种重要的印刷技术,尤其在电子、太阳能、显示器等领域有着广泛的应用。2021年中国丝网印刷版市场的销售收入达到显著的万元数额,预计到2028年将进一步...
SPSS(Statistical Product and Service Solutions)则是著名的统计分析软件,广泛应用于社会科学、医学研究、市场研究等领域。这两个工具在数据驱动决策的现代商业环境中扮演着重要角色。 Cognos培训教程通常会...