Я немного запутался, пытаясь выяснить, как работают ActiveDirectory и ASP.NET Membership ... Я создал новый проект MVC и удалил AccountController / Views. Я изменил Web.Config, чтобы он использовал ActiveDirectory и автоматически аутентифицировал пользователей на основании их текущего имени входа в Windows:
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. Не должен ли идентификатор потока быть именем пользователя IUSR_WORKSTATION или ASPNET_WP?
2. В чем разница между аутентификацией и олицетворением?