したがって、csページにこのコードがあり、Url文字列からキーをデコードします。キーは「Reauth_URL」であり、base64 で UTF8 にデコードされたリンクです。
////base 64 decoding for Reauth_URL key in URL query string
string encodedString = Convert.ToString(HttpContext.Current.Request.Params["Reauth_URL"]).Trim(')');
byte[] data = Convert.FromBase64String(encodedString);
string decodedString = Encoding.UTF8.GetString(data);
decodedString を使用しようとしていますが、null refence 例外が引き続き発生しますが、キーと値がそこにあることがわかります。
文字列値 ID を返すことができたら、自分の aspx ページにあるハイパーリンクに送信することができます。
エンコードされた URL は IronPort から設定され、ユーザーが Web サイトからブロックされている場合に別のユーザーとしてログインできるようにします。そのため、クエリ文字列のこの reauth_url キーにより、別のユーザーとしてログインできます。reauth_url によってデコードされ、ハイパーリンクにリンクされる必要があります。キーと値がそこにあることは知っていますが、この null 例外によって取得できません。それらが存在することを知っていると言うとき、明らかに上記のコードの意味ではありません。URL クエリを ? で分割する必要がありました。および & して別の場所に出力すると、それらは存在します。以下のコードは以前に使用されたもので、必要なキーと値はそこにあります。
string currentUrl = HttpContext.Current.Request.Url.Query;
txtBlockedUrl.Visible = true;
string [] result = currentUrl.Split(new Char[]{'?','&'});
foreach (string r in result)
{
txtBlockedUrl.Text += HttpUtility.UrlDecode(r) + "\n";
}
div style="font-size: medium">
<a href="<%=decodedString%>" style="text-decoration: none; border-bottom: 1px dotted blue;">LogIn as Different User</a>
</div>