2009-06-18 57 views
0

私のasp.netアプリケーションは、独自のブラウザから起動したときに正常に動作しますが、window.openを使用して別のWebアプリケーション(sharepoint webpart)から起動されたときに、セッションは失われます。ASP.Net SessionIDが失われ続ける

私はcookieに関連していると思います。セッション状態をcookielessに設定するとすべて正常に動作するからです。

なぜ、window.openを使用してアプリケーションを起動すると、新しいアプリケーションでsesssionidが失われるのですか?私は各アプリケーションに独自のセッションCookieを持たせたいと思いますが、Cookieの名前を設定しようとしましたが、同じことが起こります。

助けてください?

答えて

0

Sharepointは独自のセッションを管理します。セッションはアプリケーション(URI)に関連付けられています。アプリケーション間で何らかの種類のログイントークンを共有する必要があります。

チェックアウト:

http://forums.asp.net/t/1335229.aspx

http://forums.asp.net/p/1356006/2781938.aspx

+0

私はセッションを共有したくありません - 私は2つのアプリケーションを別々にし、クッキー、セッション、またはあらゆる認証を共有しないことを望みます。セッションIDのクッキーが作成されたのとほぼ同じですが、何らかの形でORIGINALブラウザのウィンドウにリンクされています。新しいアプリケーション(新しい起動されたwindow.open'edウィンドウ内)にポストバックすると失われますか? –

0

をあなたはどのようなブラウザを使用していますか?

IE6には、この正確な問題があります。おそらく新しいバージョンもあります。

Refer to Microsoft Support

+0

2つのアプリがクッキーやセッションを介してデータを共有しないようにするには、IE7とIE6で同じ問題が発生します。 –

+0

window.openを使用する代わりに、新しいbroswerウィンドウを起動するより良い方法がありますか? window.openが使用される理由は、webpart(sharepoint)のポストバックの一部として生成されるためです。例えば。 Sharepointアプリケーションのボタンをクリックすると、いくつかの情報がポストバックされ、新しいアプリケーション(window.openなど)を起動するためのクライアントサイドのJavaScriptが生成され、ページがレンダリングされ、javascriptが実行され、 。 –

0

ドロップwindow.open()。 tarket = "blank"のリンクを使用してください。 JSから呼び出す必要がある場合は、 link.click()を実行してください。

関連する問題