【问题标题】:Getting environment variable LOGONSERVER in an ASP/MVC application在 ASP/MVC 应用程序中获取环境变量 LOGONSERVER
【发布时间】:2011-03-23 18:04:50
【问题描述】:

我知道如何通过这个获取 LOGONSERVER 环境变量:

Environment.GetEnvironmentVariable("LOGONSERVER");

但是,如果我的应用程序是 ASP/MVC3 应用程序,这将为我提供运行 IIS 的机器的登录服务器,对吗?不是我正在处理的请求的浏览器的登录服务器。我知道我可以使用它来获取用户登录名服务器端

HttpContext.ApplicationInstance.Context.User.Identity.Name

但我在该命名空间中也看不到任何可以给我登录服务器的东西。

我现在可以通过 javascript 在客户端获取它,但我必须执行一个 CreateObject,这将在浏览器中强制执行“ActiveX”授权请求。

还有其他想法吗?

【问题讨论】:

  • 获取该信息的唯一方法是通过 ActiveX 插件,当然,根据您的用户群体,它可能完全可用,也可能根本不可用。

标签: javascript asp.net environment-variables httpcontext


【解决方案1】:

我一直在想办法解决这个问题,最终把这个共享函数放到 Global.asax 中。

    Public Shared Function GetDC() As String
        'Determine DNS domain name from RootDSE object
        Dim objRootDSE As Object = GetObject("LDAP://<myDomain>/RootDSE")
        Dim strNamingContext As String = objRootDSE.Get("rootDomainNamingContext")
        Dim lcDC As Object = objRootDSE.Get("dnsHostName")

        Return lcDC.ToString()
    End Function

然后你就可以使用它了 &lt;%= MyGlobalAsaxClassName.GetDC() %&gt;

【讨论】:

  • 这并不能完全让服务器对您的用户进行身份验证,但会返回一个 DC 以供查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2020-11-26
  • 2019-10-15
  • 2019-04-04
  • 2021-10-04
  • 2018-11-10
  • 1970-01-01
相关资源
最近更新 更多