我在使用SSRS時遇到了一些問題。我有一個使用Windows身份驗證的ASP.NET網站。這工作正常,我知道網站當前用戶是當前登錄的用戶。使用SSRS ASP.NET ReportViewer和Web服務進行Windows身份驗證
本網站是一個webforms ReportViewer。這在我沒有設置憑據時正常工作。但是,在SQL Server中查看報告的執行日誌時,用戶名被列爲DOMAIN \ MACHINE。
我已經試過ReportServerCredentials屬性設置爲類似下面的類:
[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;
}
}
}
然而,當這個代碼執行我現在從Web服務和報告得到了401回服務。
發生了什麼事?他們都在同一個域。我想使用當前用戶而不是當前機器。如果我在報告服務器上運行報告,它會在正確的用戶名下列出,而不是來自我的網站。
葉我想,第一,但仍然有401 :( – Lloyd
其實我說了謊,一定已經被緩存,該報告目前運行,但用戶名被記錄爲\t STAFF \ UKBRISDDWRKA424 $這是機器。哎呀。 – Lloyd