teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2019/05/28 05:07

投稿

退会済みユーザー
answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  > ゲスト以外でログインしているにも関わらず、「登録ボタン」が表示されない。
6
6
 
7
- ・・・となるというようなことではないかと想像しています。
7
+ ・・・となるというようなことではないかと想像しています。(下の**【追記】**参照)
8
8
 
9
9
  なので、isVisible を使わないようにして検証してみてはいかがですか?
10
10
 
@@ -20,10 +20,14 @@
20
20
  If CInt(Session(USER_KENGENN)) <= 1 Then
21
21
  btnTouroku.Visible = False
22
22
  Else
23
- btnTouroku.Visible = Ture
23
+ btnTouroku.Visible = True
24
24
  End If
25
25
  ```
26
26
 
27
27
  本題とは関係ないですが、Session(USER_KENGENN) を評価する前に Nothing でないことを確認した方がよさそうです。
28
28
 
29
- あと、これもコメントに述べたことですが、認証方式は独自実装のようですが、どうしても独自認証にしなければならない理由がなければ、ASP.NET に標準で備わっている認証方式(ASP.NET Identity など)を使用することをお勧めします。
29
+ あと、これもコメントに述べたことですが、認証方式は独自実装のようですが、どうしても独自認証にしなければならない理由がなければ、ASP.NET に標準で備わっている認証方式(ASP.NET Identity など)を使用することをお勧めします。
30
+
31
+ **【追記】**
32
+
33
+ ASP.NET Web アプリは、ユーザーから要求があるたびにスレッドプールからスレッドを取得してきてその要求を処理します。つまり、複数のユーザーから同時に要求を受けるとユーザー毎に複数のスレッドを使って要求を処理をするというマルチスレッドアプリです。なので、ASP.NET Web アプリで Shared 使うと上に書いたような問題が起こり得ます。使わないようにしましょう。

2

訂正

2019/05/28 05:07

投稿

退会済みユーザー
answer CHANGED
@@ -1,6 +1,6 @@
1
1
  全体が見えないので断定的なことは言えませんが、上のコメントで書いたように、isVisible が Shared になっているところが問題ではないかと思います。
2
2
 
3
- 例えば、ユーザー A(ゲスト)とユーザー B(一般または特権)が同時にアクセスしてきた場合、isVisible が Shared(A と B がシェアして使う)なので、A が isVisible を False に書き換えた直後に B アクセスした結果、
3
+ 例えば、ユーザー A(ゲスト)とユーザー B(一般または特権)が同時にアクセスしてきた場合、isVisible が Shared(A と B がシェアして使う)なので、A が isVisible を False に書き換えた直後に B アクセスした結果、
4
4
 
5
5
  > ゲスト以外でログインしているにも関わらず、「登録ボタン」が表示されない。
6
6
 

1

訂正

2019/05/28 02:31

投稿

退会済みユーザー
answer CHANGED
@@ -26,4 +26,4 @@
26
26
 
27
27
  本題とは関係ないですが、Session(USER_KENGENN) を評価する前に Nothing でないことを確認した方がよさそうです。
28
28
 
29
- あと、これもコメントに述べたことですが、認証方式は独自実装のようですが、どうしても独自認証にしなければならない理由がなければ、ASP.NET に標準で備わっている認証方式(ASP.NET Identity など)を用することをお勧めします。
29
+ あと、これもコメントに述べたことですが、認証方式は独自実装のようですが、どうしても独自認証にしなければならない理由がなければ、ASP.NET に標準で備わっている認証方式(ASP.NET Identity など)を使用することをお勧めします。