在表单模型中,我曾经通过以下方式获取当前登录用户:
Page.CurrentUser
Run Code Online (Sandbox Code Playgroud)
如何在ASP.NET MVC中的控制器类中获取当前用户?
我试图让ActiveDirectory和标准表单登录工作,但有一件事阻止了我.我无法获得当前Windows用户的名称.我最接近的是var i = WindowsIdentity.GetCurrent();,但这给了我IIS应用程序池用户的名字.我在IIS中启用了匿名身份验证,表单身份验证和Windows身份验证.我可以从AD加载用户,所以我假设我的web.config设置正确.
编辑:这是我的web.config(使用Facade提供程序):
<membership defaultProvider="HybridMembershipProvider">
<providers>
<clear />
<add name="HybridMembershipProvider" type="MyApp.Data.HybridMembershipProvider" AspNetProviderName="AspNetSqlMembershipProvider" ActiveDirectoryProviderName="ADMembershipProvider" />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="MyAppConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="4" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
<add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName" enableSearchMethods="true" attributeMapEmail="mail"/>
</providers>
</membership>
Run Code Online (Sandbox Code Playgroud)
编辑2:这是我的IIS安全设置.

asp.net forms-authentication active-directory windows-authentication
我有一个asp.net网站,早期版本的应用程序需要在经典模式下运行,最新版本可以在集成模式下运行.通常,应用程序配置为使用表单身份验证,但可以将其配置为使用Windows身份验证.
有一项业务要求即使在Windows身份验证中运行IIS,应用程序仍应支持表单身份验证,因此管理员必须使用用户名/密码登录.这在内部使用代码来处理,该代码确定是将用户登录还是重定向到登录
ISS6允许此配置没有问题,事实上IIS 7可以这种方式配置,除了它显示"警报"消息"iis7基于挑战并且基于登录重定向的身份验证不能同时使用".此消息似乎并不严格,因为应用程序似乎按预期工作,愉快地支持IIS作为Windows身份验证,但asp.net应用程序认为其表单身份验证.
我遇到的问题是"警报"消息,因为这无疑会引起混淆和支持呼叫.
有没有办法提供Windows身份验证和表单身份验证并保持IIS7 UI快乐?
authentication iis iis-7 forms-authentication windows-authentication
我已经在我的Web应用程序中构建了表单身份验证.我可以在同一应用程序中进行Windows身份验证和表单身份验证.因此,首先使用Windows身份验证尝试身份验证,如果失败,则使用Forms身份验证完成.
我有以下架构: -
但我有这些问题: -
感谢您的任何帮助和建议最好的问候