質問編集履歴
9
言葉の間違い再修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -298,7 +298,7 @@
|
|
298
298
|
|
299
299
|
|
300
300
|
|
301
|
-
試しに、これを削除して、JavascriptやREST Clientツールで
|
301
|
+
試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
|
302
302
|
|
303
303
|
ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
|
304
304
|
|
8
言葉の間違いを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -252,7 +252,7 @@
|
|
252
252
|
|
253
253
|
貴重な情報ありがとうございます。
|
254
254
|
|
255
|
-
セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわか
|
255
|
+
セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかりません。ただ、これを機に多少とも勉強させていただきます。
|
256
256
|
|
257
257
|
|
258
258
|
|
@@ -298,7 +298,7 @@
|
|
298
298
|
|
299
299
|
|
300
300
|
|
301
|
-
試しに、これを削除して、JavascriptやREST Clientツールで
|
301
|
+
試しに、これを削除して、JavascriptやREST ClientツールでPOSTしてみると、見事にエラーになります。
|
302
302
|
|
303
303
|
ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
|
304
304
|
|
7
補足内容をさらに追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -239,3 +239,85 @@
|
|
239
239
|
}}
|
240
240
|
|
241
241
|
---------------------------------------------------------------------
|
242
|
+
|
243
|
+
---
|
244
|
+
|
245
|
+
###[その後の調査]
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
eripong さん
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
貴重な情報ありがとうございます。
|
254
|
+
|
255
|
+
セッションIDの受渡のために、クッキーを使うかどうかの設定の話だと思うんですが、私の知識では、いまいち細かいしくみがわかrかりません。ただ、これを機に多少とも勉強させていただきます。
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
最低限の私の知識で理解できる範囲で、以下いろいろやってみました。
|
260
|
+
|
261
|
+
|
262
|
+
|
263
|
+
■まず、cookieless の設定による実行結果です。(○がPOST成功)
|
264
|
+
|
265
|
+
× UseUri
|
266
|
+
|
267
|
+
○ UseCookies
|
268
|
+
|
269
|
+
× AutoDetect
|
270
|
+
|
271
|
+
○ UseDeviceProfile
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
おっしゃるように、UseCookiesだとうまくいくようで、UseDeviceProfileでも大丈夫みたいです。
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
つまり、設定としては、
|
280
|
+
|
281
|
+
- <sessionState mode="Off" />
|
282
|
+
|
283
|
+
- <sessionState cookieless="UseCookies"/>
|
284
|
+
|
285
|
+
- <sessionState cookieless="UseDeviceProfile"/>
|
286
|
+
|
287
|
+
のいずれかだとうまくいくということになります。
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
|
292
|
+
|
293
|
+
■次に、Chromeのクッキーの状態を見てみました。
|
294
|
+
|
295
|
+
![イメージ説明](610cb19cc05811113ec4cda8074525ce.jpeg)
|
296
|
+
|
297
|
+
AspxAutoDetectCookieSupportの値が1として保存されているようです。
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
試しに、これを削除して、JavascriptやREST ClientツールでGETしてみると、見事にエラーになります。
|
302
|
+
|
303
|
+
ただ、このときに再度AspxAutoDetectCookieSupport=1 が保存され、2回目以降はエラーにならないようです。
|
304
|
+
|
305
|
+
|
306
|
+
|
307
|
+
■REST Client でのPOST実行結果
|
308
|
+
|
309
|
+
各処理のリクエストの内容を細かく調べる方法がわからないので、とりあえず情報として載せておきます。
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
以下は、REST Client でPOSTに失敗した時の状況です。
|
314
|
+
|
315
|
+
![イメージ説明](ec24d599550c1b4df164ada41a965364.jpeg)
|
316
|
+
|
317
|
+
POST時に、AspxAutoDetectCookieSupport=1にリダイレクトしてるということでしょうか。その結果「405 Method Not Allowed」が返されています。そして、その後、GETしようとしてエラー返されているようです。
|
318
|
+
|
319
|
+
|
320
|
+
|
321
|
+
最後に、REST Client でPOSTに成功した時の状況です。
|
322
|
+
|
323
|
+
![イメージ説明](7f355c63f813050726d651effbc5a9d3.jpeg)
|
6
補足の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -220,7 +220,7 @@
|
|
220
220
|
|
221
221
|
|
222
222
|
|
223
|
-
戻り値の内容を一部抜粋
|
223
|
+
1行目POST時の戻り値の内容を一部抜粋
|
224
224
|
|
225
225
|
---------------------------------------------------------------------
|
226
226
|
|
5
補足を一部修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -208,4 +208,34 @@
|
|
208
208
|
|
209
209
|
---------------------------------------------------------------------
|
210
210
|
|
211
|
-
な
|
211
|
+
上記ログ(うまくいかないほう)とソースの対応を調べたのですが、
|
212
|
+
|
213
|
+
1行目: var response = await httpClient.PostAsync(url, content); → POST
|
214
|
+
|
215
|
+
2行目: String text = await response.Content.ReadAsStringAsync(); → GET
|
216
|
+
|
217
|
+
ということでした。
|
218
|
+
|
219
|
+
1行目の処理で、エラーが帰りそのため2行目のGETがうまくいかないということのようです。
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
戻り値の内容を一部抜粋
|
224
|
+
|
225
|
+
---------------------------------------------------------------------
|
226
|
+
|
227
|
+
IsSuccessStatusCode: false
|
228
|
+
|
229
|
+
ReasonPhrase: "Method Not Allowed"
|
230
|
+
|
231
|
+
RequestMessage: {Method: POST, RequestUri: 'http://localhost:12345/api/GateApi/TestPost/?AspxAutoDetectCookieSupport=1', Version: 1.1, Content: System.Net.Http.FormUrlEncodedContent, Headers:
|
232
|
+
|
233
|
+
{
|
234
|
+
|
235
|
+
Content-Type: application/x-www-form-urlencoded
|
236
|
+
|
237
|
+
Content-Length: 10
|
238
|
+
|
239
|
+
}}
|
240
|
+
|
241
|
+
---------------------------------------------------------------------
|
4
修正依頼があったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -187,3 +187,25 @@
|
|
187
187
|
###補足情報
|
188
188
|
|
189
189
|
サーバー側もクライアント側も、.NETのバージョンは 4.5.1
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
IISのログの抜粋です
|
194
|
+
|
195
|
+
---------------------------------------------------------------------
|
196
|
+
|
197
|
+
■うまくいくとき → ChromeのRest Client で呼び出し
|
198
|
+
|
199
|
+
2015-10-13 03:06:50 ::1 POST /api/GateApi/TestPost - 12345 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/45.0.2454.101+Safari/537.36 - 200 0 0 2620
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
■うまくいかないとき → WindowsForm で呼び出し
|
204
|
+
|
205
|
+
2015-10-13 03:09:21 ::1 POST /api/GateApi/TestPost/ - 12345 - ::1 - - 302 0 0 13
|
206
|
+
|
207
|
+
2015-10-13 03:09:21 ::1 GET /api/GateApi/TestPost/ AspxAutoDetectCookieSupport=1 53903 - ::1 - - 405 0 0 266
|
208
|
+
|
209
|
+
---------------------------------------------------------------------
|
210
|
+
|
211
|
+
なぜか POSしてGETしているような動きになってるみたいです。
|
3
間違ったソースコードをコピーしてしまいました
test
CHANGED
File without changes
|
test
CHANGED
@@ -98,6 +98,16 @@
|
|
98
98
|
|
99
99
|
{
|
100
100
|
|
101
|
+
PostWebPageAsync();
|
102
|
+
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
private async void PostWebPageAsync()
|
108
|
+
|
109
|
+
{
|
110
|
+
|
101
111
|
this.label1.Text = "Post取得中";
|
102
112
|
|
103
113
|
|
2
説明不足と思われる個所に文章を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
```
|
54
54
|
|
55
|
-
試しに、以下のJavascriptでPOSTしてみましたが、これは正常に処理されます。
|
55
|
+
試しに、同じサイト内のページに埋め込んだ、以下のJavascriptでPOSTしてみましたが、これは正常に処理されます。
|
56
56
|
|
57
57
|
値も正常に渡るし、戻り値も返っています。
|
58
58
|
|
1
補足情報を訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -176,4 +176,4 @@
|
|
176
176
|
|
177
177
|
###補足情報
|
178
178
|
|
179
|
-
.NETのバージョンは 4.5.1
|
179
|
+
サーバー側もクライアント側も、.NETのバージョンは 4.5.1
|