none
リモートWebサイトのユーザー名について RRS feed

  • 質問

  • こんにちは、今回も皆様のお力を是非お借りしたいと思いますのでよろしくお願い致します。

     

    さっそくですが、

     

    開発環境(local)で、ユーザー名を取得するために、 My.User.Nameを使っています。

    開発環境では、うまくユーザー名を取得できます。

    しかし、リモートWebサイトでは開発環境とは違うユーザー名が取得されてしまいます。

     

    例:開発環境でのユーザー名=社員番号→リモートWebサイトでのユーザー名=Administrator

     

    なぜ、リモートWebサイトではAdministratorとなってしまうのでしょうか。

     

    いろいろ調べてみたところ、Webサイトのコピーを行った人だけ、Administratorとなるようです。

     

    どなたか、解決法をご存じの方は是非教えて頂けませんでしょうか。

     

    よろしくお願い致します。

     

    2008年4月2日 7:16

回答

  •  Chip'nDale さんからの引用

    開発環境(local)で、ユーザー名を取得するために、 My.User.Nameを使っています。

    開発環境では、うまくユーザー名を取得できます。

    しかし、リモートWebサイトでは開発環境とは違うユーザー名が取得されてしまいます。

     
    Web サイトにユーザ認証を導入していますか?
     
    My.User は Web アプリケーションでは、認証されたユーザのユーザ名を返すようですが、認証処理をまったくしていない場合に Windows アプリケーションと同様の実行中のユーザ名・・・つまり、Web サービスを動かしているユーザの名前を返しているのではないでしょうか?
     
    開発環境での実行中のユーザ名が表示されているというのは偶然の一致で、開発用 Web サーバを起動している人の名前になっている・・・つまり、誰がブラウザでアクセスしても、アクセスした人の名前ではなくて Visual Studio 等を動かしている人の名前が表示されているのではないですか?
    2008年4月2日 9:46
  • Page.User.Identity.Name ではどうなりますか? Windows 認証の場合は

    コンピュータ名になると思いますが。

    2008年4月3日 10:20
  • Page.User.Identity.Name でユーザー名が取得できないのは認証されて
    ないことが原因ではないかと思います。

     

    自分の環境で試した限りですが、認証されてない場合、Windows 認証でも
    Forms 認証でも Page.User.Identity.Name は ""(String.Empty)になり
    ます。

     

    ただし、Windows 認証( <authentication mode="Windows" /> )でロー
    カル環境(ローカル IIS 環境ではなく VWD 環境)でテストすると、認
    証されていると見なされ(実際、Page.User.Identity.IsAuthenticated 
    は true になる)、ユーザー名は表示されます。この点は Chip'nDale
    さんの状況と同じだと思います。

     

    ローカル IIS 環境やサーバ/クライアント環境では、認証されてない場
    合は必ず Page.User.Identity.Name は "" でした。「Web サイトのコピ
    ー」というのが具体的にどういうことか分かりませんが、Administrator
    その他になることはありませんでした。

    2008年4月4日 9:43

すべての返信

  •  Chip'nDale さんからの引用

    開発環境(local)で、ユーザー名を取得するために、 My.User.Nameを使っています。

    開発環境では、うまくユーザー名を取得できます。

    しかし、リモートWebサイトでは開発環境とは違うユーザー名が取得されてしまいます。

     
    Web サイトにユーザ認証を導入していますか?
     
    My.User は Web アプリケーションでは、認証されたユーザのユーザ名を返すようですが、認証処理をまったくしていない場合に Windows アプリケーションと同様の実行中のユーザ名・・・つまり、Web サービスを動かしているユーザの名前を返しているのではないでしょうか?
     
    開発環境での実行中のユーザ名が表示されているというのは偶然の一致で、開発用 Web サーバを起動している人の名前になっている・・・つまり、誰がブラウザでアクセスしても、アクセスした人の名前ではなくて Visual Studio 等を動かしている人の名前が表示されているのではないですか?
    2008年4月2日 9:46
  • K.Takaoka様ありがとうございます。

     

    Webサイトにはユーザー認証を導入しています。Windows認証です。

     

    My.User.Nameでは、Webサイトのコピーをした人以外はしっかりアクセスした人の名前がとれています。

     

    ユーザー名が取得できないのはやはりWebサイトのコピーを行った人のみです。

    2008年4月2日 23:12
  • Page.User.Identity.Name ではどうなりますか? Windows 認証の場合は

    コンピュータ名になると思いますが。

    2008年4月3日 10:20
  • SurferOnWww様ありがとうございます。

     

    Page.User.Identity.Nameでやってみましたが、結果はAdministratorでした・・・。

     

    2008年4月4日 2:10
  • Page.User.Identity.Name でユーザー名が取得できないのは認証されて
    ないことが原因ではないかと思います。

     

    自分の環境で試した限りですが、認証されてない場合、Windows 認証でも
    Forms 認証でも Page.User.Identity.Name は ""(String.Empty)になり
    ます。

     

    ただし、Windows 認証( <authentication mode="Windows" /> )でロー
    カル環境(ローカル IIS 環境ではなく VWD 環境)でテストすると、認
    証されていると見なされ(実際、Page.User.Identity.IsAuthenticated 
    は true になる)、ユーザー名は表示されます。この点は Chip'nDale
    さんの状況と同じだと思います。

     

    ローカル IIS 環境やサーバ/クライアント環境では、認証されてない場
    合は必ず Page.User.Identity.Name は "" でした。「Web サイトのコピ
    ー」というのが具体的にどういうことか分かりませんが、Administrator
    その他になることはありませんでした。

    2008年4月4日 9:43
  • みなさんこんにちは。森田 知良です。


    K.Takaokaさん、SurferOnWwwさん、大変有用な情報をありがとうございました。


    Chip'nDaleさん、その後いかがでしょうか?
    K.Takaokaさん、SurferOnWwwさんの情報は、有用な情報と思われましたので、
    勝手ながら回答済みチェックをつけさせていただきました。
    Chip'nDaleさんは、回答済みチェックを解除することもできますのでご確認ください。

     

    回答済みチェックが付くことにより、有用な情報を探している方が情報を見つけやすくなります。
    有効な回答があった場合は、なるべく回答済みボタンを押してチェックを付けてくださるようお願いします。

     

    また、追加の質問などがある場合、是非もう一度投稿してくださるようお願いします。

     

    それでは、これからもフォーラムのご利用をよろしくお願いいたします。

    2008年4月14日 8:05