Tôi khá mới trong C# và tiếng Anh của tôi không tốt lắm - xin lỗi trước nếu tôi bỏ lỡ một điểm.Gửi thông tin xác thực đến Sql Report Server 2008
Tôi đã cố tạo một trang web ASP.NET có điều khiển ReportService
. Như bạn đã biết, SSRS 2008 không cho phép đăng nhập vô danh. Vì vậy, tôi đã cố gắng để vượt qua Credentials để SSRS sẽ được lưu trữ bên trong trang web của tôi để người dùng sẽ có thể xem báo cáo mà không đăng nhập.
Tôi tìm thấy mã dưới đây và đặt nó trên WebForm
của tôi, nhưng tôi ' m gặp sự cố với thông số báo cáo.
Nếu có giá trị mặc định cho thông số báo cáo, mã bên dưới sẽ hoạt động tốt.
Nhưng, nếu tôi cố gắng thay đổi giá trị của một tham số, toàn bộ trang là
làm mới và trước khi tôi nhấp vào nút "Xem báo cáo", tất cả
thông số được đặt lại để mặc định hoặc giá trị null.
Bất kỳ đề xuất nào về cách tránh làm mới toàn bộ trang hoặc cách khác để chuyển thông tin đăng nhập vào SSRS? Cảm ơn rất nhiều trước.
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using Microsoft.Reporting.WebForms;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ReportViewer1.Width = 800;
ReportViewer1.Height = 600;
ReportViewer1.ProcessingMode = ProcessingMode.Remote;
IReportServerCredentials irsc =new CustomReportCredentials("administrator", "MYpassworw", "domena");
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
ReportViewer1.ServerReport.ReportServerUrl = new Uri("http://192.168.0.1/ReportServer/");
ReportViewer1.ServerReport.ReportPath = "/autonarudzba/listanarudzbi";
ReportViewer1.ServerReport.Refresh();
}
}
public class CustomReportCredentials : IReportServerCredentials
{
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; }
}
public ICredentials NetworkCredentials
{
get { return new NetworkCredential(_UserName, _PassWord, _DomainName); }
}
public bool GetFormsCredentials(out Cookie authCookie, out string user,
out string password, out string authority)
{
authCookie = null;
user = password = authority = null;
return false;
}
}
Bạn có chắc là họ đã hủy xác thực ẩn danh từ SSRS 2008 không? Bạn có thể chỉ cần cấu hình nó trong IIS? – RobS
Từ: http://blogs.msdn.com/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx Vì vậy, điều xảy ra với xác thực ẩn danh cũ tốt là RS 2005? Câu trả lời ngắn gọn là nó không còn được hỗ trợ nữa. – adopilot