我们的asp.net webapp已经发展壮大,现在有6种不同的身份验证方法,还有更多的方法。我想标准化这些方法并将每个方法提取到一个独立的插件中,可以随意禁用/启用(甚至可以在应用程序内配置)。这也是必要的,因为至少有一种方法是特定于客户端的,并且使用由所述客户端提供的DLL,不应该将其分发给其他客户端。
当我尝试为身份验证方法创建插件机制时,我面临着一种特殊的方法,即Windows身份验证。通常它通过在IIS中启用Windows身份验证来工作,但由于它应该是一个独立的插件,我想避免它修改web.config和/或IIS配置。因此,假设在IIS中默认关闭Windows身份验证(对所有内容只是匿名),有什么方法可以让我的插件工作吗?我可以以某种方式告诉IIS我的ASP.NET应用程序中我想要在特定的URL /请求上获得Windows身份验证吗?
答案 0 :(得分:2)
使用advapi32,您应该能够获取详细信息,而无需使用Windows身份验证。
在这里查看:
http://www.pinvoke.net/default.aspx/advapi32.logonuser
除此之外,除了用户Windows Integrated Auth之外别无选择,无法获得更多用户详细信息