Uwierzytelnianie Windows za pomocą SSRS ASP.NET ReportViewer i Web Service
Mam obecnie kilka problemów z korzystaniem z SSRS. Mam witrynę ASP.NET, która używa uwierzytelniania systemu Windows. To działa dobrze i wiem, że bieżący użytkownik strony jest aktualnie zalogowanym użytkownikiem.
Na tej stronie jest Webforms ReportViewer. Działa to dobrze, gdy nie ustawiam poświadczeń. Jednak patrząc na dziennik wykonania raportów w SQL Server nazwa użytkownika jest wyświetlana jako DOMAIN MASZYNA.
Próbowałem ustawić właściwość ReportServerCredentials na klasę taką jak poniżej:
[Serializable]
public class ReportCredentials : IReportServerCredentials
{
public bool GetFormsCredentials(out Cookie authCookie, out string userName, out string password, out string authority)
{
authCookie = null;
userName = null;
password = null;
authority = null;
return false;
}
public WindowsIdentity ImpersonationUser
{
get {
return (WindowsIdentity)HttpContext.Current.User.Identity;
}
}
public ICredentials NetworkCredentials
{
get {
return null;
}
}
}
Jednak po wykonaniu tego kodu otrzymuję teraz 401 z usługi WWW i usługi raportowania.
Co się dzieje? Oba są w tej samej domenie. Chcę użyć bieżącego użytkownika, a nie bieżącego komputera. Jeśli uruchomię raport na serwerze raportów, wyświetli on pod poprawną nazwą użytkownika, a nie na mojej stronie.