2

在试图找出 ActiveDirectory 和 ASP.NET 成员资格如何工作时,我有点困惑......我创建了一个新的 MVC 项目并删除了 AccountController / Views。我已经更改了 Web.Config 以便它使用 ActiveDirectory 并根据用户当前的 Windows 登录自动对用户进行身份验证:

网络配置

<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. Authentication 和 Impersonation 有什么区别?

4

1 回答 1

1

myuser 是该应用程序上的经过身份验证的用户,这就是您的 CurrentPrincipal 为您提供 MYDOMAIN/myuser 的原因。应用程序在使用数据库等资源时模拟 IUSR_WORKSTATION,这是一个完全不同的问题。

如果您转到工具栏上的项目,然后选择 ASP.NET 配置,它将打开一个网站,让您可以访问这些设置并创建用户、角色等。

于 2009-05-14T11:00:18.080 回答