在一个非常大的局域网中,我有共享受LDAP认证保护的文件夹。 我已将我的BE放在共享文件夹上,并允许适当的用户访问该文件夹。 在FE中,表格链接到BE,所以在我打开FE之前,我必须先打开(双击)共享文件夹(为了提供用户名和密码),然后关闭它。十分难看。 如何打开链接到受保护文件夹中的BE的FE而不必先打开该文件夹?
提前完成 马可
答案 0 :(得分:1)
Public Function RemoteLogin(Ute As String, Pw As String, RemotePath As String) As Boolean
Dim Str1 As String
' to disable the credentials : Str1 = "net use " & RemotePath & "/delete"
Str1 = "net use " & RemotePath & " /user:" & Ute & " " & Pw
Shell "cmd.exe /c " & Str1, vbHide
WaitForSeconds (2)
On Error Resume Next
RemoteLogin = ((GetAttr(RemotePath) And vbDirectory) = vbDirectory)
End Function
(RemotePath类似于“\\ fileServer \ SharedFolder”)
我不得不延迟2秒,因为在中等大的局域网中我需要时间来传播(我们使用SAMBA和LDAP)。 在延迟之后,我必须测试路径的开放性,因为如果提供的密码是正确的,也不是,那么Shell也不会返回任何结果。
HTH
马
答案 1 :(得分:0)
这是一个更好的解决方案,其中使用了Shell命令的同步版本(来自masterdrive.it的@Alex建议)。这里不需要强制延迟2秒。
Public Function RemoteLogin(Ute As String, Pw As String, RemotePath As String) As Boolean
Dim Str1 As String
Str1 = "net use " & RemotePath & " /user:" & Ute & " " & Pw
Str1 = "cmd.exe /c " & Str1
Call MyShell(Str1, vbHide, True)
On Error Resume Next
RemoteLogin = ((GetAttr(RemotePath) And vbDirectory) = vbDirectory)
End Function
Sub MyShell(ByVal Percorso As String, ByVal windowstyle As Integer, ByVal Attendi As Boolean)
Dim wshell As Object
Set wshell = CreateObject("WScript.shell")
wshell.Run Percorso, windowstyle, Attendi
Set wshell = Nothing
End Sub