![](/img/trans.png)
[英]ASP.NET Membership - Which RoleProvider to use so User.IsInRole() checks ActiveDirectory Groups?
[英]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.