none
認証アカウントについて RRS feed

  • 質問

  •  

    お世話になっております。

    認証アカウントについてお聞きしたいのですが、

     

    IISランタイム認証を、「匿名アクセスを許可」として

    ASPランタイム認証を、「Windows」にした場合、

    どのようなアカウント名で認証されているのかを

    表示したいのですが、下記のプロパティになにも入っていなさそうです。

    想像では、IUSR_XXXを想像していたのですが、違うのでしょうか。

     

    User.Identity.Name

     

    MSDNでは、上記の内容の場合、GetAnonymous メソッドが使用されて

    設定されているみたいなのですが、表示することは可能でしょうか。

     

     

    ご教授お願いします。

     

    2009年1月26日 2:05

回答

  • こんにちは。

     

    # 確かにちょうど良い解説文は見当たらないですね。

     

    私もよくわかりませんが、ただの ”覚え方” 的な感じで言えばこんなイメージだと、

    私は(勝手に)理解してます。

     

     

    匿名アクセスの場合

     

    (アプリケーション = ASP.NET レベル) → Application で使うユーザ 
    → (環境によって動作・コード
    が変わっては困るから Windows ユーザーを見せるべきではない。従って...) ”空”

    ------------------------------------------------------------------------------------------------------------------------------------

    (HTTP リクエスト = IIS = Win32 レベル) → Windows の生トークン
    → (こちらはその環境毎に変るであろうアカウント。Windows で匿名の場合は通常...) IUSR カウント

     

     

    ご参考になりましたら幸いです。

     

    -------------------------------------------

    だどさん http://keicode.com/

     

     

     

     

    • 回答としてマーク TAKAKUN 2009年2月6日 5:58
    2009年1月27日 6:40

すべての返信

  • ご返事ありがとうございました。

    確かに、上記「Request.LogonUserIdentity.Name」で、認証ユーザーが

    表示示されました。

    しかし、認証の処理結果は、HttpContextのユーザー情報に格納されると思っていたのですが、

    なぜにリクエスト情報にあるのでしょうか。

     

     

    2009年1月26日 6:00
  • 話が微妙にぶれてるようなきもします。前提条件の状態に対して、

    ・匿名アクセス時の User.Identity = ASP.NET 認証情報 = 空欄(匿名時のASP.NETの動作)
    ・匿名アクセス時の WindowsIdentity = IIS 認証結果 = IUSR_ASP等(匿名時のIISの動作)

    という話ですよね? 何の情報を得たいのかによって、見るべき場所が違うだけです。



    2009年1月27日 4:25
  •  K.Takaoka さんからの引用
    という話ですよね? 何の情報を得たいのかによって、見るべき場所が違うだけです。

    その「見るべき場所が違う」というのを分かり易く解説してるとこがないかなと思ったんですが・・・

    2009年1月27日 4:46
  • こんにちは。

     

    # 確かにちょうど良い解説文は見当たらないですね。

     

    私もよくわかりませんが、ただの ”覚え方” 的な感じで言えばこんなイメージだと、

    私は(勝手に)理解してます。

     

     

    匿名アクセスの場合

     

    (アプリケーション = ASP.NET レベル) → Application で使うユーザ 
    → (環境によって動作・コード
    が変わっては困るから Windows ユーザーを見せるべきではない。従って...) ”空”

    ------------------------------------------------------------------------------------------------------------------------------------

    (HTTP リクエスト = IIS = Win32 レベル) → Windows の生トークン
    → (こちらはその環境毎に変るであろうアカウント。Windows で匿名の場合は通常...) IUSR カウント

     

     

    ご参考になりましたら幸いです。

     

    -------------------------------------------

    だどさん http://keicode.com/

     

     

     

     

    • 回答としてマーク TAKAKUN 2009年2月6日 5:58
    2009年1月27日 6:40
  •  

    皆様ご返事ありがとうございます。

    だどさんの覚えかたをまねする方向でいきたいと思います。

    Userプロパティは、ASPNETランタイム関連情報で、

    Requestプロパティは、ユーザーからのASPNETランタイムに入る直前までの関連情報が格納されていると

    いうことになるでしょう。その間には「ユーザー(要求情報)→IISランタイム(認証情報)」→ASPNETランタイムとなり

    「」内の情報がRequestプロパティに格納されていると思いこみます。

    ありがとうございました。

     

    だどさん の発言:

    こんにちは。

     

    # 確かにちょうど良い解説文は見当たらないですね。

     

    私もよくわかりませんが、ただの ”覚え方” 的な感じで言えばこんなイメージだと、

    私は(勝手に)理解してます。

     

     

    匿名アクセスの場合

     

    (アプリケーション = ASP.NET レベル) → Application で使うユーザ 
    → (環境によって動作・コード
    が変わっては困るから Windows ユーザーを見せるべきではない。従って...) ”空”

    ------------------------------------------------------------------------------------------------------------------------------------

    (HTTP リクエスト = IIS = Win32 レベル) → Windows の生トークン
    → (こちらはその環境毎に変るであろうアカウント。Windows で匿名の場合は通常...) IUSR カウント

     

     

    ご参考になりましたら幸いです。

     

    -------------------------------------------

    だどさん http://keicode.com/

     

     

     

     



     

    2009年1月29日 5:26
  • いまさらながらのレスですが、以下のページが図いりの説明で、自分が見た
    限りでは Msdn ライブラリの中では一番分かりやすかったです。

     

    ASP.NET セキュリティのアーキテクチャ
    http://msdn.microsoft.com/ja-jp/library/yedba920.aspx

     

    ASP.NET セキュリティのデータ フロー
    http://msdn.microsoft.com/ja-jp/library/xa68twcb.aspx

     

    ただ、Vista Ultimate + IIS7 + VS2008 Pro + .NET 3.5 SP1 のローカル
    IIS 環境で実際に以下のようなコードで試すと、

    Label1.Text = Page.User.Identity.IsAuthenticated.ToString();  
    Label2.Text = Page.User.Identity.AuthenticationType;  
    Label3.Text = Page.User.Identity.Name;  
     

     

    結果は以下のようになって、書いてあることとちょっと違うような感じが
    しますが(汗)

     

            フォーム認証は常に無効

     

            ASP.NET偽装: 無効
            Windows認証: 無効
            匿名認証:    有効

     

            IsAuthenticated = False
            AuthenticationType =
            Name =

            -----------------------

            ASP.NET偽装: 無効
            Windows認証: 有効
            匿名認証:    無効

     

            IsAuthenticated = True
            AuthenticationType = Negotiate
            Name = コンピュータ名\アカウント名

            -----------------------

            ASP.NET偽装: 無効
            Windows認証: 無効
            匿名認証:    無効

     

            HTTP エラー 401.2 - Unauthorized
            認証ヘッダーが無効なため、このページを表示することができません。

    2009年1月31日 3:07