2

ActiveDirectory と ASP.NET メンバーシップがどのように機能するかを調べようとしているときに少し混乱しています... 新しい MVC プロジェクトを作成し、AccountController / Views を削除しました。ActiveDirectory を使用し、現在の Windows ログインに基づいてユーザーを自動的に認証するように Web.Config を変更しました。

Web.Config

<authentication mode="Windows">
    <forms
    name=".ADAuthCookie"
    timeout="10" />
</authentication>

<membership defaultProvider="MyADMembershipProvider">
  <providers>
    <clear/>
      <add
         name="MyADMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         connectionUsername="MYDOMAIN\myuser"
         connectionPassword="xxx"
         />
  </providers>                 
</membership>

次のようにしてユーザーのユーザー名を取得できるため、これはうまく機能します。

User.Idenity.Name()  'Gives MYDOMAIN\myuser

以下を見ると、実際には混乱します。

Threading.Thread.CurrentPrincipal.Identity.Name() 'Gives MYDOMAIN\myuser

1. スレッド ID は IUSR_WORKSTATION または ASPNET_WP ユーザー名であるべきではありませんか?
2. 認証と偽装の違いは何ですか?

4

1 に答える 1

1

myuser はそのアプリケーションの認証済みユーザーです。そのため、CurrentPrincipal は MYDOMAIN/myuser を提供しています。アプリケーションは、データベースなどのリソースを使用するときに IUSR_WORKSTATION を偽装しますが、これはまったく別の問題です。

ツールバーの [プロジェクト] に移動し、[ASP.NET 構成] を選択すると、これらの設定にアクセスしてユーザーやロールなどを作成できる Web サイトが開きます。

于 2009-05-14T11:00:18.080 に答える