回答編集履歴
3
具体的に今回の問題について追記した。
test
CHANGED
@@ -13,6 +13,24 @@
|
|
13
13
|
まず、POSTした後に、クエリストリングにAspxAutoDetectCookieSupport=1を付けて
|
14
14
|
|
15
15
|
GETしているようなのは、sessionStateのcookielessがAutoDetectの場合に発生する様です。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
今回の場合、最初のPOSTは、以下に述べるセッションのための処理を行うために、
|
20
|
+
|
21
|
+
ASP.NETによって処理され、二番目に来るGETを関数TestPostに振り分けようとして、
|
22
|
+
|
23
|
+
POSTにしか対応していないのでエラー、ということだと思います。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
同じサイト内のページに埋め込んだJavascriptやChromeのRest Clientでうまくいったのは、
|
28
|
+
|
29
|
+
既に今回のアプリケーションにアクセスしており、リクエストにクッキーが載っていたためではないかと
|
30
|
+
|
31
|
+
予想しています。
|
32
|
+
|
33
|
+
(確認できれば、確認していただければと思います。)
|
16
34
|
|
17
35
|
|
18
36
|
|
2
リンクと、文章の流れを一部修正した。
test
CHANGED
@@ -12,21 +12,23 @@
|
|
12
12
|
|
13
13
|
まず、POSTした後に、クエリストリングにAspxAutoDetectCookieSupport=1を付けて
|
14
14
|
|
15
|
-
GETしているようなのは、sessionState
|
15
|
+
GETしているようなのは、sessionStateのcookielessがAutoDetectの場合に発生する様です。
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
-
|
19
|
+
セッションIDをクッキーに保存するかURLに埋め込むかを決めるために、
|
20
20
|
|
21
|
-
そうでな
|
21
|
+
クッキーが使えるクライアントか、そうでないかを判定するために、
|
22
22
|
|
23
23
|
AspxAutoDetectCookieSupport=1にリダイレクトしています。
|
24
|
+
|
25
|
+
以下のページに詳しい判定方法が載っています。
|
24
26
|
|
25
27
|
[Understand How the ASP.NET Cookieless Feature Works](https://msdn.microsoft.com/en-us/library/aa479315.aspx)
|
26
28
|
|
27
29
|
|
28
30
|
|
29
|
-
[SessionStateSection.Cookieless プロパティ](https://msdn.microsoft.com/ja-jp/library/system.web.configuration.sessionstatesection.cookieless
|
31
|
+
また、[SessionStateSection.Cookieless プロパティ](https://msdn.microsoft.com/ja-jp/library/system.web.configuration.sessionstatesection.cookieless.aspx)を見ると、
|
30
32
|
|
31
33
|
cookielessのデフォルトはAutoDetectの様なので、こちらをUseCookiesにすれば、
|
32
34
|
|
1
詳細を追記した。
test
CHANGED
@@ -5,3 +5,53 @@
|
|
5
5
|
では、セッションをoffにする事で現象が解消したとありますが、
|
6
6
|
|
7
7
|
セッションは使用されているでしょうか?offにすることはできますか?
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
### 問題が発生する仕組みについて
|
12
|
+
|
13
|
+
まず、POSTした後に、クエリストリングにAspxAutoDetectCookieSupport=1を付けて
|
14
|
+
|
15
|
+
GETしているようなのは、sessionStateにcookieless="AutoDetect"を指定していると発生する様です。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
クッキーが使えるクライアントならクッキーにセッションIDを保存し、
|
20
|
+
|
21
|
+
そうでなければURLにセッションIDを埋め込む処理を行うために、
|
22
|
+
|
23
|
+
AspxAutoDetectCookieSupport=1にリダイレクトしています。
|
24
|
+
|
25
|
+
[Understand How the ASP.NET Cookieless Feature Works](https://msdn.microsoft.com/en-us/library/aa479315.aspx)
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
[SessionStateSection.Cookieless プロパティ](https://msdn.microsoft.com/ja-jp/library/system.web.configuration.sessionstatesection.cookieless(v=vs.110).aspx)を見ると、
|
30
|
+
|
31
|
+
cookielessのデフォルトはAutoDetectの様なので、こちらをUseCookiesにすれば、
|
32
|
+
|
33
|
+
現象が解消する可能性はあります。
|
34
|
+
|
35
|
+
その場合、HttpClientでCookieが有効になる様にする必要があります。
|
36
|
+
|
37
|
+
ただ、UseCookiesにすればリダイレクトがなくなるかどうかについては、
|
38
|
+
|
39
|
+
今のところ有効な資料を見つけられておらず、また検証する環境もないので、
|
40
|
+
|
41
|
+
うまく行くかは未知数です。
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
UseUriは、セッションID付きのURLへのリダイレクトを伴うと思いますので、
|
46
|
+
|
47
|
+
いずれにしてもリダイレクトした場合にGETリクエストになって同じエラーになるかと思います。
|
48
|
+
|
49
|
+
(こちらも検証していないので予想です。)
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
セッション自体をなくしてしまえば、これらの仕組みが動かなくなるので、
|
54
|
+
|
55
|
+
セッションをoffにすれば改善するだろうと思って回答しました。
|
56
|
+
|
57
|
+
|