我々はインターネット上でそれを使用することができますので、私は、フォーム認証にSQL-Serverレポートサービス2012(SSRS 2012)を切り替えています。SSRS:なぜ "HTTP 400 Bad Request - Request too Long"が発生するまでSKAクッキーが生成されるのですか?
どこでもSSRS 2012のフォーム認証のサンプルが見つかりませんでしたので、SSRS 2008R2を1つ取り、Single Sign-On(SSO)用に2012に適応させなければなりませんでした。
すべてが期待どおりに働いているように見えたその時点で。私はSSOをドメイン間で動作させることさえできました。
しかし、今、私は問題を抱えている:
私は右のそれHTMLディスプレイ用のtdのボーダーサイズを変える少しJavaScriptを挿入しなければならなかったので、私は、GoogleのChromeですべてのレポート(200以上)をテストしていました非IE5-QuirksMode。およそ第50回報告した後、私は突然だ:
- 、その後
「HTTP 400不正な要求が長すぎ要求」私は以前に仕事をしなかったものも含め、他のレポートを表示できませんでした。
問題は、あまりにも多くのクッキーに起因すると思われる、と私はいくつかの「* _SKA」を削除したとき確かに、(セッションキープアライブ?)クッキー、それが再び働き始めました。
私の問題は、今私は、この「クッキーオーバーフロー」が発生かわからないということです。 これはChromeのバグ、バニラSSRSのバグ、新しいフォーム認証によるバグについてもわかりません。
私はクッキーとは何かを持っている新しいフォーム認証で行うすべてはこれです:
using System;
using System.Collections.Generic;
using System.Text;
namespace FormsAuthentication_RS2012
{
internal class FormsAuthenticationWorkaround
{
public static void RedirectFromLoginPage(string strUser, bool createPersistentCookie)
{
//string url = System.Web.Security.FormsAuthentication.GetRedirectUrl(strUser, true);
string url = GetRedirectUrlWithoutFailingOnColon(strUser, createPersistentCookie);
SQL.Log("User: '" + strUser + "' ReturnUrl", url);
if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Response != null)
System.Web.HttpContext.Current.Response.Redirect(url);
}
// https://github.com/mono/mono/blob/master/mcs/class/System.Web/System.Web.Security/FormsAuthentication.cs
// @MSFT: WTF are u guys smoking ?
public static string GetRedirectUrlWithoutFailingOnColon(string userName, bool createPersistentCookie)
{
if (userName == null)
return null;
System.Web.Security.FormsAuthentication.SetAuthCookie(userName, true, "/");
string returnUrl = null;
if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Request != null)
returnUrl = System.Web.HttpContext.Current.Request.QueryString["ReturnUrl"];
if (returnUrl != null)
return returnUrl;
returnUrl = System.Web.Security.FormsAuthentication.DefaultUrl;
return returnUrl;
}
}
}
そして、このコードは、1が一番下に見ている「sqlAuthCookie」を作成しますように。 "sqlAuthCookie"が1つしかないので、これはフォーム認証バグかもしれません。
問題は、私の知る限りでは、バニラSSRSをどうするフォーム認証とすべてのものとは何の関係もないことを、SKAクッキーのように見えます。私はこの理由として見ることができた
唯一の他の事は、私は、web.configファイルでフォーム認証部に入力された720分にフォーム認証Cookieのタイムアウトの変化です。
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name="sqlAuthCookie" timeout="720" path="/">
</forms>
</authentication>
誰もが私がキープアライブクッキーを(手動でこれらのクッキーを削除する以外)のセッションで洪水に溺れ防ぐために何ができるか知っていますか?
それは離れて、それは非常に迷惑なこと、ユーザーがおそらく非常に理解されませんので、問題になるだろうから、それ自体が私にとっては問題ありません...
クロムを使用してブラウザを閉じると機能しませんでした。私は手動でクッキーを削除しなければならなかった。私はあなたのサーバー側のソリューションをすぐに試してみます。ありがとう! – kravits88
これは私が変更するまで私には役に立たなかった 'c.Path = Request.ApplicationPath +"/Pages ";'to 'c.Path = Request.Cookies [i] .Path;' – masty
@masty:面白い、Request.Cookies [i] .Pathは私のために働かない。どちらもありませんc.Path = Request.Cookies [i] .Path + "/ Pages"; ServicePack 1 +の最新の累積アップデートをインストールしましたか? –