【问题标题】:Is it possible to get Windows Authentication in ASP.NET without enabling it in IIS?是否可以在 ASP.NET 中获得 Windows 身份验证而不在 IIS 中启用它?
【发布时间】:2012-09-27 09:07:31
【问题描述】:

背景

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

问题

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

【问题讨论】:

    标签: asp.net iis plugins windows-authentication


    【解决方案1】:

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

    在这里看看:

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

    除此之外,除了用户 Windows 集成身份验证之外,没有其他方法可以获取更多用户详细信息

    【讨论】:

    • 只使用用户名/密码,而不是 NTLM。也许我在最初的主题中并不清楚,但是“Windows 身份验证”是指 IIS 执行的那种“Windows 身份验证”,它(至少在 IE 上)对用户透明地发生。
    • 据我所知,没有。我相信您的客户在启用所需的服务器功能时应该没有问题。
    • 我只想让插件独立于当前的 IIS 配置。
    • 没有人会重新实现该功能的复杂性,因为它已经存在。你最好的办法是从你的组件中对 web.config 进行更改,即使你说你不想这样做。
    • 它甚至不如 IIS 本身那么多 web.config。但是,好吧,我会接受这是必要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-05-24
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多