您需要实现IReportServerCredentials
inteface,请参见下面的实现:
public class CustomReportCredentials : IReportServerCredentials
{
protected string _username = string.Empty;
protected string _password = string.Empty;
protected string _domainName = string.Empty;
public CustomReportCredentials(string userName, string password, string domainName)
{
_username = userName;
_password = password;
_domainName = domainName;
}
public bool GetFormsCredentials(out System.Net.Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = password = authority = null;
return false;
}
public System.Security.Principal.WindowsIdentity ImpersonationUser
{
get { return null; }
}
public System.Net.ICredentials NetworkCredentials
{
get
{
if (_username != "noadmin")
{
return new NetworkCredential(_username, _password, _domainName);
}
else
{
Uri uri = new Uri("http://tempuri.org/");
ICredentials credentials = CredentialCache.DefaultCredentials;
NetworkCredential credential = credentials.GetCredential(uri, "Basic");
return credential;
}
}
}
}
然后你就可以报告查看证书属性设置为IReportServerCredentials
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack){
IReportServerCredentials iReportCredentials = new CustomReportCredentials("user",
"mypassword", "mydomain");
ReportViewer1.ServerReport.ReportServerCredentials = iReportCredentials;
}
}
谢谢,这一定是我错过了。有没有办法让这使用集成安全,而不是我必须设置用户名/密码? – user842818