【问题标题】:How to use windows authentication without username/password如何在没有用户名/密码的情况下使用 Windows 身份验证
【发布时间】:2013-07-19 22:11:28
【问题描述】:

我已经在 iis 8 上发布了我的第一个网站,当我右键单击它并浏览时,我可以访问它。当我在 chrome 或 IE 中输入我的 ip 时,我会提示我输入用户名和密码。 Windows 身份验证设置为 true,匿名设置为 false,我的 web.config 如下所示:

<configuration>
  <system.web>
    <authentication mode="Windows"></authentication>
    <identity impersonate="true"/>
    <authorization>      
      <allow users="?"/>
    </authorization>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
  </system.webServer>
</configuration>

我不希望我的用户输入他们的信用,但我希望能够在页面顶部显示他们的 Windows 用户名。是不是我做错了什么?

【问题讨论】:

    标签: asp.net windows-authentication


    【解决方案1】:

    如果您打算使用 Windows 身份验证但不希望用户输入他们的凭据,您将不得不限制用户使用 IE,并且您必须确保网站的地址被标识为Intranet 站点 - 只有这样 IE 才会在受到挑战时自动发送当前用户的 Windows 凭据。据我所知,Windows 平台上没有其他浏览器支持此功能(不过可能有插件)。

    This knowledge-base article 可能有用 - 简而言之,您可以确保将您网站的地址添加到您的用户 Intranet 区域,然后将自动提供凭据。

    如果这是 AD 环境,您可以让域管理员将地址添加到组策略中,以便为所有用户推出此功能。

    【讨论】:

      【解决方案2】:

      这是一个 Intranet Web 应用程序吗?

      查看这篇文章,看看它是否有帮助: ALL Operations on Active Directory (AD) using c#

      否则考虑使用会员提供程序(但实际上您需要用户至少在第一次登录,这取决于您的设置方式)

      我相信,一旦您在 Web 配置中需要 Windows 身份验证,您将需要通过 un 和 pw 进行授权。所以尝试使用匿名登录和文章中介绍的一些方法。当它设置为 Windows Auth 时,它只适用于服务器上的 AD,不一定是客户端计算机。

      【讨论】:

      • 匿名我不会被要求提供我的信用。这是一个 Intranet 应用程序,所以它不会向我询问我的信誉
      • 这样好吗?听起来这就是你所追求的。如果这是一个网络应用程序,我认为这是不可能的。如果它是一个 Windows 应用程序,也许可以,但我会把它留给其他人来回答。由于存在安全风险,浏览器不会泄露客户端机器的用户名。如果网站托管在或可以访问客户端用户每天登录的同一个 Active Directory,那么上述链接可能会有所帮助。否则,请认真考虑结合数据库的会员提供程序解决方案(想到 SQL + ASPNET 会员)。
      猜你喜欢
      • 2015-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 2011-07-04
      • 2016-02-19
      • 1970-01-01
      相关资源
      最近更新 更多