他のさまざまなアプリ (ツール) へのアクセスを制御するゲートウェイ アプリを作成しています。
サイトにアクセスすると、ユーザーが識別され、アクセスできるツールのリストが表示されます。リンクをクリックすると、ユーザーはツールに移動します。URL にはクエリ文字列としてトークンが付加されます。トークンは暗号化されています。
ツール サイトに到着すると、システムはトークンを含むクエリ文字列があるかどうかを確認します。トークンが有効かどうかを確認します (日付は暗号化の一部です)。OK の場合、トークンは 8 時間有効な Cookie としても保存され、アクセスが許可されます。
ユーザーがブックマークからツール サイトに直接アクセスすると、システムはトークンが存在するかどうか、およびトークンが有効かどうかをもう一度確認します。トークンがクエリ文字列として渡されない場合、システムはまだ有効な Cookie があるかどうかを確認します。有効なトークンまたは Cookie がない場合、サイトは、2 つのクエリ文字列 t および r と共に、ゲートウェイへの response.redirect を呼び出します。t はツールの数値 ID で、r はツールの URL です。
ユーザーがゲートウェイにリダイレクトされ、ユーザーがツール ID t にアクセスできるかどうか、新しいトークンがクエリ文字列として追加されて r にリダイレクトされているかどうかが確認されます。
私のコードには次のものがあります....
Private GatewayURL As String = "http://GatewayURL/default.aspx?t=2&r="
Private ToolURL As String = "http://ToolURL/default.aspx"
In my page load I have….
…
If AuthenticationPass = False Then
'We are not authenticated...
Response.Redirect(GatewayURL & ToolURL, True)
End If
…
残念ながら、これがトリガーされると、次のエラーが表示されます...
Invalid path for child request 'http://GatewayURL/default.aspx'. A virtual path is expected.
私はこれを解決するためのアイデアを使い果たしました....どんな助けにも感謝します。