- PR -

window.top.location.assignでのページ移動について

1
投稿者投稿内容
ゆっきー
ベテラン
会議室デビュー日: 2006/04/21
投稿数: 65
投稿日時: 2006-05-01 16:54
vb.netで開発をしています。
Session変数に保存した認証内容がクリアされた時に、認証画面へ移動するコードを作成しています。Response.Redirectで移動すると、子画面の場合やフレームの場合、表示したいウィンドウで認証ページを表示させることができなかったりするので、Javascriptの「location.assign」を利用してページ変更を行なおうとしています。
デバックモードではなくブラウザから直接実行した場合、「書き込みできません」のエラーが表示されてしまいます。デバックモードでは問題ないのですが・・・。
ブラウザはIE6 SP2でセキュリティはデフォルトです。どこか設定を変更しておかないとlocation.assignは使用できないのでしょうか?また、良い代替案があれば、アドバイスよろしくお願いします。

Dim strURL As String
Dim strRootURL As String
Dim strHref As String
Dim stbScript As New StringBuilder

If IsNothing(Session("UserInfo")) Then

'ルートURL取得
strURL = Request.ServerVariables("URL")
strRootURL = Left(strURL, InStr(2, strURL, "/", 1) - 1)

strHref = "http://" + HttpContext.Current.Request.ServerVariables.Get("SERVER_NAME") & _
strRootURL & "/Login.aspx"

'JAVAスクリプト生成
stbScript.Append("<script language=""javascript"">" & vbLf)
stbScript.Append("if (window.opener) " & vbLf)
stbScript.Append("{ " & vbLf)
stbScript.Append(" window.opener.top.location.assign('" & strHref & "');" & vbLf)
stbScript.Append(" self.window.close();" & vbLf)
stbScript.Append("} " & vbLf)
stbScript.Append("else " & vbLf)
stbScript.Append("{ " & vbLf)
stbScript.Append(" window.top.location.assign('" & strHref & "');" & vbLf)
stbScript.Append("} " & vbLf)
stbScript.Append("</script>" & vbLf)

'認証ページへ移動
HttpContext.Current.Response.Write(stbScript.ToString)

Return False

End If
1

スキルアップ/キャリアアップ(JOB@IT)