0

我正在为 MS SQL 报告服务开发一个基于表单的身份验证模块,如下所述:

到目前为止一切顺利,但我遇到了这个问题。我调用的 URL 重定向到登录页面进行身份验证,然后页面重定向回返回 url。

URL 示例调用:

http://thor/ReportServer/Pages/ReportViewer.aspx?%2fSampleUserReport&rs:Command=Render

此行崩溃:

FormsAuthentication.RedirectFromLoginPage(m_username, false);

例外:

System.Web.HttpException: Der für die Umleitung von Anforderungen angegebene Rückgabe-URL ist ungültig.
   bei System.Web.Security.FormsAuthentication.GetReturnUrl(Boolean useDefaultIfAbsent)
   bei System.Web.Security.FormsAuthentication.GetRedirectUrl(String userName, Boolean createPersistentCookie)
   bei TQsoft.Windows.Products.SSRS.Authentication.Logon.ServerBtnLogon_Click(Object sender, EventArgs e)

因此,在调查和调试之后,我发现我跳过&rs:Command=Render它是否有效。

所以我能想象到的唯一特殊字符就是:字符。

任何想法如何使它工作,因为报告服务正在与导航中的那些工作很多。

更新

事实证明,我必须像这样重定向自己:

Response.Redirect(Request.QueryString["ReturnUrl"].Replace(":","%3A"));
Context.ApplicationInstance.CompleteRequest();

但这引发了另一个异常:

System.Threading.ThreadAbortException: Der Thread wurde abgebrochen.
   bei System.Threading.Thread.AbortInternal()
   bei System.Threading.Thread.Abort(Object stateInfo)
   bei System.Web.HttpResponse.End()
   bei System.Web.HttpResponse.Redirect(String url, Boolean endResponse)
   bei System.Web.HttpResponse.Redirect(String url)
   bei TQsoft.Windows.Products.SSRS.Authentication.Logon.ServerBtnLogon_Click(Object sender, EventArgs e)

我真的是asp.net 上的菜鸟,但是当RoR 赢得我的atm 时开始讨厌它。

4

2 回答 2

2

我以前遇到过这个问题,但是我想使用 URL 链接传递希伯来字符。

尝试使用%3A.

编辑

我使用谷歌翻译来转换这些字符:只需编写字符/字符串,点击翻译并复制 URL 中的相关部分。

于 2013-01-18T14:38:44.340 回答
0

Response.Redirect(HttpServerUtility.UrlEncode(Request.QueryString["ReturnUrl"]));

这对您有用吗,替换问号 (?)、与号 (&)、斜线 (/) 和空格等字符。

http://msdn.microsoft.com/it-it/library/zttxte6w.aspx

于 2013-01-18T15:47:23.127 回答