SSRS 2016自定义身份验证

时间:2017-12-29 05:36:12

标签: asp.net-mvc reporting-services ssrs-2016

我有一个mvc应用程序,它从报表服务器构建报表,它通过流读取内容。现在我需要做的是为SSRS2016创建一个CustomAuthentication,这样我就可以作为访客用户自动登录(凭证目前保存在配置中)。每个链接都解释了"如何"他们有一个登录页面的CustomAuthentication。

我需要创建吗?

我知道我应该使用IAuthenticationExtension,但我不希望用户登录服务器,也没有包含用户名和密码的数据库,因为大多数源都使用这样的数据库。

如果我不需要创建页面,那么传统LogonUser的替代方法是什么(string userName,string password,string auth)?

1 个答案:

答案 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);