У меня есть сайт интрасети, который находится в том же домене, что и моя служба SSRS (и тот же сервер виртуальных машин). Он заблокирован от внешнего доступа (т. Е. Интернета). Я использую MVC для питания сайта интрасети с помощью аутентификации форм.Это создает файл cookie .ASPXAUTH во время аутентификации с помощью нашего LDAP.
Проблема заключается в том, что когда пользователь входит в систему, появляется iframe для запуска отчета сервера отчетов, однако он также запрашивает проверку подлинности.Я хотел бы удалить этот второй логин.
Сайт интрасети имеет следующий формат: https://SUBDOMAIN.DOMAIN.com/HOME SRSS равен https://SUBDOMAIN.DOMAIN.com/Reports Субдомен и домен совпадают, и они совместно используюттот же подстановочный знак SSL
То, что я пробовал: я отредактировал web.config и reportserver.config для ssrs в папке Microsoft Sql Serv .. \ SSRS \ Reportserver со следующим:
в Web.config
<authentication mode="Forms">
<forms loginUrl="/Account/Login/"
name=".ASPXFORMSAUTH"
/>
</Authentication>
в ReportServer.config
<Authentication>
<AuthenticationTypes>
<Custom />
</AuthenticationTypes>
<EnableAuthPersistence>true</EnableAuthPersistence>
</Authentication>
...
<UI>
<CustomAuthenticationUI>
<PassThroughCookies>
<PassThroughCookie>.ASPXAUTH</PassThroughCookie>
</PassThroughCookies>
</CustomAuthenticationUI>
</UI>
Когда я делаю это и перезапускаю службу ssrs, она выключает все, пока я не вернусь к своим резервным копиям.Есть ли что-то, что мне не хватает?
Здесь что-то сказано о машинных ключах, но некоторые из них я не понимаю: https://social.msdn.microsoft.com/Forums/en-US/c3e11282-495b-4e2a-b422-524dba378444/custom-authentication-provider-for-ssrs-2016-?forum=SQLServer2016Preview
Я предполагаю, что добавляю машинный ключ в web.config для SSRS, но это делаетзначит, мне нужно добавить машинный ключ в мой web.config моего проекта MVC?Нужно ли добавлять машинный ключ к процессу авторизации в другом месте?
Вот генератор файлов cookie этого проекта.Я что-то здесь упускаю?
authTicket =
new FormsAuthenticationTicket(1, // version
acc.windows_id,
DateTime.Now,
DateTime.Now.AddMinutes(500),
false, "True");
// Now encrypt the ticket. DO I NEED TO ADD MACHINE KEY HERE SOMEHOW?
encryptedTicket = FormsAuthentication.Encrypt(authTicket);
//Create a cookie and add the encrypted ticket to the cookie as data.
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
// Add the cookie to the outgoing cookies collection.
Response.Cookies.Add(authCookie);
FormsAuthentication.RedirectFromLoginPage(logon_user, true);
Я ищу какое-то общее направление.Статьи MSDN читаются как стерео инструкции и, похоже, не признают того, что я пытаюсь сделать конкретно.Надеюсь, кто-то здесь сделал что-то похожее, я знаю, что я близок, но, вероятно, одна или две вещи отсутствуют
Я также пытался вызвать .ASPXFORMSAUTH просто .ASPXAUTH.Это не сработало.Я получаю, что сервер отчетов не работает (ошибка 503) в обоих направлениях.