【发布时间】:2014-09-15 19:47:58
【问题描述】:
我正在尝试让用户输入他们的域登录详细信息,以便站点可以获取组列表以确定要连接到哪个数据库。
我找到的最近的代码来自微软:
How to authenticate against the Active Directory by using forms authentication and Visual Basic .NET
当我使用 IIS8、ASP 4.5 时,代码在 web.config 中失败,参考
<identity impersonate="true" />
HTTP Error 500.24 - Internal Server Error
An ASP.NET setting has been detected that does not apply in
Integrated managed pipeline mode.
好的,所以我删除了这个条目,它使用我的域进行身份验证,但是当它重定向相同的登录页面时,我认为没有任何东西告诉它冒充。
进一步挖掘似乎我可能无法使用此代码,因为它不支持托管管道模式。我不想使用 asp 成员身份作为使用域组来验证权限。
救命!
想要保持集成托管管道并且正在使用 ASP.Net 模拟,因此我可以使用经过身份验证的广告用户对 sql 数据库进行身份验证。
【问题讨论】:
-
我不太清楚你想要完成什么。模拟通常仅在您需要将 IIS 工作进程作为用户凭据运行时使用(例如,如果您想以该用户身份访问网络资源)。除非绝对必要,一般不推荐。您能否详细解释一下您的要求...“获取组列表以确定要连接的数据库”相当模糊..
-
@nick 你不能使用 Windows 身份验证代替 Forms 身份验证吗?然后使用 Page.User.Identity 在 System.DirectoryServices 中进行查找
-
我一直在使用 windows 身份验证,因为这是一个 Intranet 应用程序,但我需要在 Internet 上提供此功能,因此查看表单身份验证以获取 windows 用户。
标签: asp.net iis active-directory forms-authentication integrated-pipeline-mode