0

あるブラウザーから URL をコピーして別のブラウザーに貼り付けると、セッション データが取得されず、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と表示されます。

4

2 に答える 2

1

(注意してください-この回答は、まだCookieなしのセッションを使用していないことを前提としています)

ASP.NETでセッションが機能する方法は、最初にサイトにアクセスしたときに、CookieファイルがブラウザーのCookieストアに配置されることです。CookieにはセッションIDが含まれているため、次にそのブラウザからそのサイトにアクセスすると、IDがWebアプリケーションに渡され、ロードするセッション状態がわかります。

ただし、各ブラウザは独自のCookieストアを実装しているため、ブラウザを切り替えると、サイトがセッションIDを判別できなくなります。

これを回避する1つの方法は、Cookieなしのセッションを使用することです。ただし、これらにはユーザビリティとセキュリティに関連する多くの問題があるため、それらがあなたに適しているかどうかを判断する前に、じっくり考えてください。

もう1つのオプションは、認証システムとセッションシステムを結び付けることです。ただし、これも一般的には推奨されません。

于 2012-11-02T09:07:39.467 に答える
0

複数のブラウザ間でセッション値にアクセスすることはできません。

また、サーバーエラーを回避するために、値がセッションに存在するかどうかを確認する必要があります。

if(Session["Key"] != null)
{
//Write your code here
}
else
{
 //Alternative code (redirection code)
}
于 2012-11-02T09:07:51.160 に答える