[英]Windows Authentication over VPN for Windows Form Application
[英]Domain Authentication from .NET Client over VPN
我正在寫一個ClickOnce WPF應用程序,有時會在VPN上使用。 該應用程序使用僅對域身份驗證的用戶可用的資源。 其中包括訪問SSRS報告,訪問LDAP查找用戶信息,訪問Web服務等。
當用戶從未經域驗證的計算機登錄時,我需要以某種方式獲取其憑據,在域上進行身份驗證,並存儲其憑據。
我發現了幾篇文章,但最近卻沒有發布太多,而且許多解決方案似乎有些怪異,或者也不是很安全(例如,將字符串以純文本形式存儲在內存中)。
如果可以使用ActiveDicrtoryMembershipProvider,那就太酷了,但這似乎適合在Web應用程序中使用。
編輯:以上是一種解決方法。 用戶必須輸入其域憑據才能在VPN上進行身份驗證。 最好是訪問用戶已經輸入的用於登錄VPN的憑據,而不是WindowsIdentity.GetCurrent()(返回登錄到計算機的用戶)。 關於如何工作的任何想法? 我們使用瞻博網絡連接到VPN。
回答我基本上完成了下面鏈接中建議的操作。 應用啟動時,我將檢測用戶是否在域中。 如果是這樣,我將在致電服務時使用這些憑據。 如果用戶在VPN上(但不在域身份驗證的計算機上),則提示輸入用戶的憑據並通過System.DirectoryServices進行身份驗證。 如果用戶提供有效的憑據,我將把域,用戶和密碼存儲在SecureString中。 然后,該應用程序使用該信息來創建憑據以傳遞給各種服務。
謝謝!
這個問題的答案可能會有所幫助。
- 編輯 -
如果客戶端使用其AD憑據登錄,則WindowsIdentity.GetCurrent()
將返回有效的WindowsIdentity
。
如果客戶端未登錄到域,則可以提供一個彈出窗口,要求輸入AD憑據。
好吧,只是在想...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.