2013-10-31 22 views
0

我們公司有一個基於Web的員工目錄,我試圖從Access 2013桌面數據庫應用程序鏈接到該目錄。用戶配置文件的鏈接如下所示:https://mysite.example.com?Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0來自Access應用程序的超鏈接未正確驗證/重定向

當我在瀏覽器(IE9)中直接訪問該URL時,我會自動進行身份驗證並重定向到該用戶的配置文件。當我在桌面上創建一個URL超鏈接並啓動它時,IE9將啓動,並且我被重定向到該用戶的配置文件。當我將Excel單元格的值設置爲該URL並單擊生成的超鏈接時,會出現相同的行爲。當我在Word中單擊該超鏈接時,同樣的行爲。

如果您在訪問表單中嵌入了Web瀏覽器控件並將其URI設置爲所需的位置,即使該鏈接隨後在用戶的外部瀏覽器中打開,該鏈接也可以正常工作。偶然碰巧發現了這個怪癖。

問題是,當我從我的訪問應用程序創建一個超鏈接到該網址並點擊它,IE9發佈和訪問該網址,但我得到了以下錯誤消息:

There was a problem accessing the site. Try to browse to the site again. If the problem persists, contact the administrator of this site and provide the reference number to identify the problem. Reference number: dc40e099-a58d-472d-b187-ac162d399e28

這似乎成爲IIS(Microsoft Internet信息服務框架)的標準認證錯誤。

使用Access VBA中的FollowHyperlink函數時遇到同樣的問題。

我已經能夠解決此的唯一方式是使用VBA命令:Shell "explorer " & Chr(34) & "https://mysite.example.com/Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0" & Chr(34)我的元素的Click方法,但該元素不表現得像一個本地超級鏈接應該(無自動超鏈接的造型,沒有「手」遊標等),而且我也非常好奇爲什麼Access的超鏈接與其他Windows/Office超鏈接的行爲表現不同。

任何想法?

+0

我認爲這個問題與你的包含查詢參數的超鏈接有關(鏈接後面的所有內容)。我假設您可以按照超鏈接訪問www.google.com等網站?如果你不能那麼你做錯了,因爲這很簡單。如果你可以 - 我不知道你需要的答案,但尋找與「ms訪問超鏈接查詢參數」有關的事情 –

+0

這是一個很好的想法,但我成功地鏈接到了https://www.google .COM q =測試+ query'。我認爲問題出在一些會話/ cookie跟蹤上,但我不知道具體是什麼。 – StockB

回答

2

由於沒有真正解決問題的根本原因(Access的斷開會話處理),我已經提出了一種解決方法,該解決方法與Access的原生超鏈接密切相關(但不完全相同)。

我將我的標籤控件的Hyperlink Address屬性從https://mysite.example.com/Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0更改爲(單個空間)。空間在那裏,以便標籤看起來像是一個超鏈接,但在用戶點擊時不會將用戶重定向到一個URI

然後,我將標籤的OnClick事件設置爲VBA子例程。該子程序包含以下代碼:Shell "explorer " & Chr(34) & "https://mysite.example.com/Person.aspx?guid=9eda6bb0-6b6b-492e-adbb-3c39e8a7fcd0" & Chr(34)。這行代碼打開瀏覽器中的鏈接,該鏈接應在用戶的默認瀏覽器中打開超鏈接。

點擊後,鏈接將打開瀏覽器並在認證後重定向到所需的頁面。此解決方法的工作原理是繞過Access的默認超鏈接重定向,其中包含會話處理中斷。我鼓勵微軟的Access團隊儘快研究這個問題。

此外,通過設置控件的ControlTip Text屬性(在「其他」選項卡中),您可以設置懸停工具提示以顯示目標網址,就像真正的超鏈接(或其他描述性文本,如果您願意的話)。

結果是一個組件,它的外觀,感覺和行爲都像超鏈接,但不是超鏈接。希望微軟很快修復這個問題,所以這不是必須的,但是暫時來說,它工作的很好。

相關問題