的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。身份验证和假冒之间有什么区别?
答案 0 :(得分:1)
myuser是该应用程序上的Authenticated用户,这就是您的CurrentPrincipal为您提供MYDOMAIN / myuser的原因。当应用程序使用像数据库这样的资源时,它会模仿IUSR_WORKSTATION,这是一个完全不同的问题。
如果您转到工具栏上的Project,并选择ASP.NET Configuration,它将打开一个网站,允许您访问这些设置并创建用户,角色等。