2013-04-30 69 views
1

所以,我的問題與在生產服務器上的代碼,運行Windows Server 2003 & IIS 6ASP.NET模擬不工作的生產

我試圖模擬一個域帳戶,它在本地工作正常。

雖然當它的功能模擬用戶無法在服務器上,即返回false:

private bool impersonateValidUser(String userName, String domain, String password) 
    { 
     WindowsIdentity tempWindowsIdentity; 
     IntPtr token = IntPtr.Zero; 
     IntPtr tokenDuplicate = IntPtr.Zero; 

     if (RevertToSelf()) 
     { 
      if (LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref token) != 0) 
      { 
       if (DuplicateToken(token, 2, ref tokenDuplicate) != 0) 
       { 
        tempWindowsIdentity = new WindowsIdentity(tokenDuplicate); 
        impersonationContext = tempWindowsIdentity.Impersonate(); 
        if (impersonationContext != null) 
        { 
         CloseHandle(token); 
         CloseHandle(tokenDuplicate); 
         return true; 
        } 
       } 
      } 
     } 
     if (token != IntPtr.Zero) 
      CloseHandle(token); 
     if (tokenDuplicate != IntPtr.Zero) 
      CloseHandle(tokenDuplicate); 
     return false; 
    } 

注意,代碼不會崩潰 - 它只是返回false。有沒有人經歷過這個,並有什麼我應該開始看什麼想法?我假設IIS配置在這裏,但可能需要幾周才能找到導致此問題的小問題。

我可以使用我試圖模擬在服務器上安裝驅動器的帳戶,以便帳戶用戶/密碼組合很好,並且可以用於在Windows資源管理器中進行身份驗證。

+0

請問哪個版本的IIS和Windows Server?請注意,您必須執行各種步驟才能進行委派,人們忘記做的最常見的事情就是允許服務器自己在Active Directory中委派「許可」。有關概覽,請參閱http://support.microsoft.com/kb/810572。 – dash 2013-04-30 07:59:10

+0

2003&IIS 6 - 很好,我也會加入到這個問題中。 – 2013-04-30 08:00:38

+0

@dash該網站通常不會使用Windows模擬,因爲它是外部面向的 - 但我使用它來執行一次身份驗證,以從共享驅動器恢復文件。 – 2013-04-30 08:35:03

回答

1

我還記得,我在模仿不與集成模式下工作對於問題的解決方案項目同樣的問題是,加入到我們的web.config:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
</system.webServer> 

但與此impersonatig在Global.asax方法doesen't工作:

protected void Application_AuthenticateRequest(object sender, EventArgs e) 
protected void Application_BeginRequest(object sender, EventArgs e) 

希望這有助於你,因爲我不知道哪個版本的ISS,這是。

+0

我的web.config中已經有了相同的設置,謝謝你的回答。 – 2013-04-30 08:33:46

+0

hm:/ this may help http://msdn.microsoft.com/en-us/library/134ec8tc%28v=vs.80%29.aspx – 2013-04-30 08:44:20