SSRS 报表 如何匿名查看

SSRS 报表 如何匿名查看

昨晚一直研究怎么能匿名访问报表然后给客户看呢?

研究了好几种办法

我试过的分为三种,其中推荐我认为相对可控一点。

1.修改SSRS配置文件来禁止他验证登陆用户权限 操作过的文章:SSRS匿名登录 可以完全匿名访问,因为我们系统是涉及到客户要自己做报表的,所以这里屏蔽了权限问题,那么这种办法对我来说是不可行的。2.修改IIS配置  操作过的文章:匿名访问的一个间接方法 这种办法和第三种类似但是这个是直接操作IIS的如果集成到系统中也不是很科学。

我用的是通过程序伪装登陆之后获得报表

我觉得这样的好处是,可以控制此账户只有浏览的权限,并不破坏任何东西

需要做的就是两点:

1.前台还是一样,一个ScriptManager 一个ReportViewer

2.而后台代码这样写。其中把登陆用户名和账户都存到存到配置文件当中。请自行添加

3.这个类的介绍:https://msdn.microsoft.com/en-us/library/microsoft.reporting.webforms.ireportservercredentials.aspx

public partial class One : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ReportParameter para = new ReportParameter("ReportParameter1", "1");
                ReportViewer1.ServerReport.ReportServerCredentials = new MyReportServerCredentials();
                ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://报表服务器地址/reportserver");
                ReportViewer1.ServerReport.ReportPath = "/报表地址";
                ReportViewer1.ServerReport.SetParameters(new ReportParameter[] { para });
            }

        }

    }
    [Serializable]
    public sealed class MyReportServerCredentials : IReportServerCredentials
    {
        public WindowsIdentity ImpersonationUser
        {
            get
            {
                // Use the default Windows user.  Credentials will be
                // provided by the NetworkCredentials property.
                return null;
            }
        }

        public ICredentials NetworkCredentials
        {
            get
            {
                // Read the user information from the Web.config file.
                // By reading the information on demand instead of
                // storing it, the credentials will not be stored in
                // session, reducing the vulnerable surface area to the
                // Web.config file, which can be secured with an ACL.

                // User name
                string userName =
                    ConfigurationManager.AppSettings
                        ["myReportViewerUser"];

                if (string.IsNullOrEmpty(userName))
                    throw new Exception(
                        "Missing user name from web.config file");

                // Password
                string password =
                    ConfigurationManager.AppSettings
                        ["MyReportViewerPassword"];

                if (string.IsNullOrEmpty(password))
                    throw new Exception(
                        "Missing password from web.config file");

                // Domain
                string domain =
                    ConfigurationManager.AppSettings
                        ["MyReportViewerDomain"];

                if (string.IsNullOrEmpty(domain))
                    throw new Exception(
                        "Missing domain from web.config file");

                return new NetworkCredential(userName, password, domain);
            }
        }

        public bool GetFormsCredentials(out Cookie authCookie,
                    out string userName, out string password,
                    out string authority)
        {
            authCookie = null;
            userName = null;
            password = null;
            authority = null;

            // Not using form credentials
            return false;
        }
    }

可以成功访问了。。

时间: 2024-12-29 23:43:20

SSRS 报表 如何匿名查看的相关文章

SSRS 报表 递归列表

SSRS 报表 递归列表 1.需要数据集合中两个必备字段 ID PID 1.添加数据集合,在图上标记的地方点击右键添加数据集合,根据需求自己编写 2.点击插入选项卡 中的 矩阵  有两种方式 一种是 矩阵向导或者 插入矩阵 .这里我们选择插入矩阵 3.把部门名称拖动到列表第一行, 4.点击窗体下面的行组,如果没有组请参考图片一,如果有请忽略,选择小三角,点击组属性. 5.点开组属性之后需要更变的项有 1.常规-分组方式-ID 2.可见性-在报表最初运行时-隐藏-.勾选可以通过此报表项切换显示改为

[译]SSRS 报表版本控制

问题 如今商务智能应用广泛,对我们的商业愈加重要. 对新报表和的各种需求不断攀升. 自 SQL Server 2008 R2的 Reporting Services (SSRS) 开始,微软视图为减轻IT团队的工作量,推出了报表工具 Report Builder 3.0.  在此之前建立复杂的报表必须用BIDS (就是 Visual Studio ,2012以后叫SSDT).现在报表都可以用 BIDS或者Report Builder建立. 因为可以使用两个工具创建修改的关系. 报表的版本控制愈加

SSRS 报表 如何加参数

SSRS 报表 如何加参数 连接上以后出现一个问题 就是给报表加上参数以后报表不断刷新,跟上次那个报表刷新是同样的问题.那么下面我们来解决一下. 1. 这是给报表添加默认参数进入页面后就不断的刷新刷新. ReportParameter para = new ReportParameter("ReportParameter1", "1");//参数 ReportViewer1.ServerReport.ReportServerCredentials = new MyR

XDOC云报表的匿名模式

XDOC云报表支持匿名模式,你可以在不注册用户的情况下随意使用(其实注册很简单),集成也非常简单.下面给个例子: 设计 在浏览器中输入http://myxdoc.sohuapps.com/_1234.xdoc?_func=edit开始设计模板 1234是随意起的名字,可以换成你的 添加一个参数,拖拽到编辑器中,点击运行 输入参数值,点击运行 直接调用 http://myxdoc.sohuapps.com/_1234.xdoc?name=hello 输出pdf http://myxdoc.sohu

SSRS报表订阅

SSRS报表订阅参考链接: https://technet.microsoft.com/zh-CN/library/ms159762.aspx http://www.cnblogs.com/biwork/p/3258728.html ?订阅方式 ?文件共享传递 ?电子邮件传递 (前提:在RS配置管理器中设置电子邮件) 版本支持 ?标准订阅 手动配置多个订阅,设置共享路径(\\server\path),可设置文件名等 手动配置多个订阅,不可更改文件名 Enterprise?/Business In

SSRS报表基本结构与设置

SSRS报表基本结构与设置 整个报表设计雨区基础的结构可以分为"页眉(Page Header)"."页脚(Page Footer)"."主体(Body)"以及"数据"等四个主要的区域,如下图所示.设计画面中默认只显示主体以及数据区域,如果需要开启页眉或是页脚,则必须在主体外侧空白处右击,开启页眉页脚区域,便可显示与设计. 页眉与页脚主要是用来放置整份报表共同的说明性信息,例如:页码.制表日期.审核单位等.需要注意的是,由于页首

SQL Server 2005中设置Reporting Services发布web报表的匿名访问

原文:SQL Server 2005中设置Reporting Services发布web报表的匿名访问 一位朋友提出个问题:集成到SQL Server 2005中的Reporting Services已经将报表模板发布到IIS服务器,客户端通过浏览器访问时,默认会弹出Windows集成身份验证的对话框.如果在IIS配置里面把允许匿名(IUSR_**)访问的选项勾选,客户端再次访问的时候,会提示IUSR_** 访问权限不足.   对于这个问题,除了要设置IIS允许匿名访问外,还需要设置Report

[AX2012 R3]在SSRS报表中使用QR二维码

AX2012是自带生成QR二维码的类,可以很方便的用在SSRS报表中,下面演示如何在RDP的报表中使用二维码,首先从定义临时表开始: 字段URL是要用于二维码的字符串,QrCode是container类型,保存最终生成的二维码图形二进制数据. DP类: class TestQrCodeDp extends SRSReportDataProviderBase { TestQrCodeTmp qrCodeTmp; } [ SRSReportDataSetAttribute(tableStr(Test

SSRS报表导出工具

? 使用背景 我们平时经常使用微软的SSRS为客户制作各种各样的报表,有很多时候客户都需要订阅功能,能够让报表以邮件的形式发送给客户的报表使用者. 也许我们知道微软的Reporting Service能够对报表完成订阅功能,并且能够将报表发送出去,但现实中往往需要更为灵活的发送邮件的方式和时间进行发送. 为此我们希望能够有一个小工具能够将SSRS报表以指定的格式进行导出,然后能够借助SSIS的各种强大组件将报表以附件的形式发送给用户. 导出工具 为此,开发了以下报表的导出小工具,供各位BI同事能