将表单身份验证与Windows身份验证混合

dr_*_*aik 49 asp.net iis-7 forms-authentication windows-authentication

我有一个(ASP.NET 3.5)Intranet应用程序,它被设计为使用表单身份验证(以及默认的aspnet成员资格系统).我还在另一个表中存储有关用户的其他信息,该表与aspnet_users表共享其主键.

对于属于我们域的用户,我将其域帐户名存储在辅助用户表中,并且我希望自动登录其域帐户名与存储在表中的名称匹配的用户.

我已经阅读了可用的指南 - 它们都来自两年或更长时间,并且假设您能够在单独的登录页面上激活Windows身份验证,该页面允许您提取域帐户名称.但是,据我所知,这在IIS7中是不可能的(整个身份验证方法适用于所有页面,无法有选择地停用,并且两种身份验证方法都不能应用于同一页面).

有没有办法让IIS通过请求用户的Windows域帐户名?我不需要正确的AD身份验证,只需要域名.

Dan*_*n F 48

实际上,你可以做到.@dr_draik有点迟了,但这对我来说是谷歌搜索结果,所以我想我会分享一些知识.

如果您处于经典模式 - 启用Windows和Forms身份验证.你会得到一个关于不能同时做两件事的警告,但你可以忽略它.然后,您可以搜索各种属性,如代码:

HttpContext.Current.Request.ServerVariables["LOGON_USER"]

并从那里钓鱼用户名.

如果您处于集成模式 - 4021905 IIS7基于挑战和基于登录重定向的身份验证无法同时使用,则会导致IIS 7.0使用表单身份验证和Windows身份验证进行两级身份验证,这是一个允许您有选择地更改身份验证的模块不同的页面.