我在尝试做一个职位,从asp经典的服务器侧页,使用户证书...

我使用的msxml2.ServerXMLHTTP到编程方式使后

我已经尝试与几构在IIS5.1网站,但是我没办法可以使IIS运行与一个指定的帐户...

我做了一个小asp页运行whoami验证是什么帐户iis过程中,我采用...

IIS5.1,使用的综合安全过程中使用:

my_machine\IWAM_my_machine

我禁用综合的安全,并保留域帐户作为匿名的访问和我得到相同(¿?)

测试对用户我这样做


private function whoami()
dim shell, cmd

    set shell = createObject("wscript.shell") 
    set cmd = shell.exec( server.mapPath( "whoami.exe" ) )
    whoami = cmd.stdOut.readAll() 
    set shell = nothing: set cmd = nothing 

end function

是因为我发出的命令?

我想让http post电话,另一个站点工作的综合安全...

所以我需要一些方法来传递的凭据,或至少要运用一个指定账户,然后配置的远端站点推该帐户...

我以为这只是设置的网站与综合安全将是足够的...

我如何可以实现这样的事情?

ps:与IIS6,发生一样 但是,如果我改变游泳池canfiguration我得到以下信息,从whoami

NT权力机构\网络服务

NT权力机构\当地的服务

NT权力机构\系统

如果我设定一个域帐户,我得到一个"服务不可用"的消息...

编辑:发现了这个

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/275269ee-1b9f-4869-8d72-c9006b5bd659.mspx?mfr=true

它说什么我supossed,"如果验证用户的请求,将螺纹令是基于所认证的账户",但不知怎的,我不起作用这样的...我能怎么可能失踪了?

编辑:

好的whoami件事是显然骗我,我试图与下列功能


private function whoami_db( serverName, dbName )
dim conn, data

set conn = server.createObject("adodb.connection")
conn.open       "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
                        "Initial Catalog=" & dbName & ";Data Source=" & serverName
set data = conn.execute( "select suser_sname() as user_name" )

whoami_db = data("user_name")

data.close: conn.close
set data = nothing: set conn = nothing

结束功能

和一切似乎都是工作的好...

但我怎样才能让msxml2.ServerXMLHTTP工作中与用户证书???

有帮助吗?

解决方案

您是否正确whoami.exe混淆了你。启动一个单独的过程中造成新的过程来作为当前进程的用户运行。在XP中,这将是该COM +应用主机(DLLHOST),并会正常运行作为IWAM_<machine>。上IIS6它会在w3wp.exe的工作过程和通常运行为NT AUTHORITY \网络服务。

然而一个线程中处理的HTTP请求将模拟不同的安全令牌。随着你发现集成安全性,这将发出请求的用户,如您的SSPI实验的安全令牌证实了。与匿名访问在网站/应用程序配置的匿名用户被使用,这通常是<MACHINE>\IUSR_<machine>

关于你与ServerXMLHTTP的特定问题的这个返回到基础组件的WinHTTP。这在默认情况下,如果被访问的服务器是代理绕过列表将只发送当前用户的凭据。即使如此,它可以将ServerXMLHTTP的配置它永远不会发送用户的凭据,我还没有测试的情况我自己。

不幸的是ServerXMLHTTP的提供上WinHTTP的配置细节非常有限。但是,如果这是一个显示塞,那么你总是可以直接使用的WinHTTP组件自己: -

Dim oWinHTTP
Dim oDOM

    Const AutoLogonPolicy_Always = 0

Set oWinHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")

oWinHTTP.SetAutoLogonPolicy AutoLogonPolicy_Always

oWinHTTP.Open "GET", "http://remoteserver.org/getsomexml.xxx", False
oWinHTTP.Send

If oWinHTTP.Status = 200 Then
    Set oDOM = CreateObject("MSXML2.DOMDocument.3.0")
    oDOM.async = false
    oDOM.Load oWinHTTP.ResponseStream     
End If

Set oWinHTTP = Nothing

这应该适用于HTTP,HTTPS为它得到真正的混乱。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top