繁体   English   中英

ASP.NET成员资格-哪个用户已通过身份验证,哪个用户已被模拟?

[英]ASP.NET Membership - Which user is authenticated and which user is impersonated?

在尝试找出ActiveDirectory和ASP.NET成员身份的工作方式时,我有些困惑。我创建了一个新的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.身份验证和模拟之间有什么区别?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM