是否可以在ASP.NET中启用Windows身份验证而不在IIS中启用它?

时间:2012-09-27 09:07:32

标签: asp.net iis plugins windows-authentication

背景

我们的asp.net webapp已经发展壮大,现在有6种不同的身份验证方法,还有更多的方法。我想标准化这些方法并将每个方法提取到一个独立的插件中,可以随意禁用/启用(甚至可以在应用程序内配置)。这也是必要的,因为至少有一种方法是特定于客户端的,并且使用由所述客户端提供的DLL,不应该将其分发给其他客户端。

问题

当我尝试为身份验证方法创建插件机制时,我面临着一种特殊的方法,即Windows身份验证。通常它通过在IIS中启用Windows身份验证来工作,但由于它应该是一个独立的插件,我想避免它修改web.config和/或IIS配置。因此,假设在IIS中默认关闭Windows身份验证(对所有内容只是匿名),有什么方法可以让我的插件工作吗?我可以以某种方式告诉IIS我的ASP.NET应用程序中我想要在特定的URL /请求上获得Windows身份验证吗?

1 个答案:

答案 0 :(得分:2)

使用advapi32,您应该能够获取详细信息,而无需使用Windows身份验证。

在这里查看:

http://www.pinvoke.net/default.aspx/advapi32.logonuser

除此之外,除了用户Windows Integrated Auth之外别无选择,无法获得更多用户详细信息