我有一个mvc应用程序,它从报表服务器构建报表,它通过流读取内容。现在我需要做的是为SSRS2016创建一个CustomAuthentication,这样我就可以作为访客用户自动登录(凭证目前保存在配置中)。每个链接都解释了"如何"他们有一个登录页面的CustomAuthentication。
我需要创建吗?
我知道我应该使用IAuthenticationExtension,但我不希望用户登录服务器,也没有包含用户名和密码的数据库,因为大多数源都使用这样的数据库。
如果我不需要创建页面,那么传统LogonUser的替代方法是什么(string userName,string password,string auth)?
答案 0 :(得分:1)
查看此link是否有帮助。 或尝试这样的事情。
internal class ReportCredentials : IReportServerCredentials
{
private string strUserName;
private string strPassword;
private string strDomain;
public ReportCredentials(string strUserName, string strPassword, string strDomain)
{
this.strUserName = strUserName;
this.strPassword = strPassword;
this.strDomain = strDomain;
}
public System.Security.Principal.WindowsIdentity ImpersonationUser
{
get { return null; }
}
public ICredentials NetworkCredentials
{
get { return new NetworkCredential(strUserName, strPassword, strDomain); }
}
public bool GetFormsCredentials(out Cookie authCookie, out string user,
out string password, out string authority)
{
authCookie = null;
user = password = authority = null;
return false;
}
}
和这个
string strUserName = ConfigurationManager.AppSettings["userName"].ToString();
string strPassword = ConfigurationManager.AppSettings["password"].ToString();
string strDomain = ConfigurationManager.AppSettings["domain"].ToString();
ReportViewer1.ServerReport.ReportServerCredentials = new ReportCredentials(strUserName, strPassword, strDomain);