ASP.NET - 检测用户是否使用Active Directory进行身份验证?

时间:2010-05-21 20:31:06

标签: asp.net active-directory

我们有一个带ADFS的SSO解决方案用于登录我们的Web应用程序,我们还有标准设置,它使用我们的数据库进行身份验证。我想设置一个允许两者的解决方案。所以现在我想弄清楚,有没有办法让ASP.NET检测用户是否通过Active Directory进行身份验证,以便我可以动态执行此操作?如果用户通过AD登录,则通过ADFS发送,否则显示登录屏幕。有什么想法吗?

我也意识到,只有在ADFS进程启动后才设置为使用基于表单的身份验证,这可能不起作用。

1 个答案:

答案 0 :(得分:0)

是...在IIS中,启用集成身份验证,基本身份验证和匿名身份验证。所有实际工作都在HTTPModule中完成,这些工作在根Web.config中注册(例如在运行时CONFIG文件夹中)。如果通过集成凭证进行身份验证,内置的身份验证HTTPModule将在用户身份验证后设置用户原则。您可以添加自己的内容以便在它之后触发。如果IIdentity(例如User.Identity)将IsAuthenticated设置为false,那么您知道它们未经过身份验证,然后可以重定向它们。如果设置为true,则可以将IPrinciple替换为包含与应用程序密切相关的角色的IPrinciple。