[英]Connect to device ASP.NET MVC
我是ASP.NET MVC的新手,我必須開發一個網頁,該網頁使用其SDK(C#SDK)連接到指紋設備,捕獲指紋圖像並顯示設備的實時預覽。
如果設備連接到托管我的頁面的服務器,則該頁面工作正常。
問題是當客戶端打開網頁並連接設備時,為連接設備而編寫的代碼在服務器上運行,因此它不會檢測到客戶端設備(設備SDK已安裝在服務器上,因此它會檢測設備僅當它已連接到服務器時)。
我可以使用C#在客戶端運行設備代碼嗎?
您可能將無法直接從網頁中運行的代碼訪問設備。 一些設備制造商確實通過網絡提供了某些API(相機,GPS等),但僅以有限的方式提供。 除非它可以充當標准輸入設備(鍵盤或鼠標)並與輸入元素進行交互,否則您極不可能從網站訪問任意第三方設備。 例如,如果它可以在文本框中填充與指紋相對應的字符串,或者允許您拍攝指紋的圖片,然后可以通過文件輸入將其上傳,那么您也許可以使用它。
替代方法是編寫一個安全插件-Java Applet或ActiveX控件-該插件可以本地訪問設備並使用它通過JavaScript與您的網頁進行交互。 用戶必須允許加載插件,並允許其訪問設備才能正常工作。
Silverlight是可用於某些瀏覽器的插件,使您可以在客戶端上運行.NET(C#)代碼。 它類似於Adobe Flash或Java Applets。 該開發與開發WPF應用程序有些相似。
我會擔心的事情是,由於安全限制,您是否可以訪問該設備。 另外,請參閱tvanfosson對自己的回答的評論。 將基本的“ Hello,world!”放在一起應該相對簡單。 應用程序,以驗證您是否可以從Silverlight與您的設備通話。
另一個問題是,最后的Silverlight支持可能不是Microsoft的首要任務,並且它在非Microsoft平台上的支持有限。
您可能會考慮的另一種技術是ClickOnce應用程序。
對於需要幫助的其他人:我實現了一種自定義方式,可以從ASP.NET MVC網頁連接到連接到客戶端工作站的USB設備。 使用Web套接字 ,您可以創建自己的客戶端桌面應用程序(c#)以連接到設備。 該桌面應用程序將是Web套接字服務器,然后在您的網頁中,您可以實現Web套接字客戶端以連接到桌面應用程序。
客戶端樣本(JavaScript)
<script type="text/javascript">
var ws = new WebSocket("ws://127.0.0.1:8080/service");
ws.onopen = function ()
{
};
</script>
服務器樣本
static void Main(string[] args)
{
var wssv = new WebSocketSharp.Server.WebSocketServer(System.Net.IPAddress.Any, 8080);
wssv.KeepClean = true;
wssv.AddWebSocketService<Service>("/service");
wssv.Start();
if (wssv.IsListening)
{
Console.WriteLine("Listening on port {0}, and providing WebSocket services:", wssv.Port);
foreach (var path in wssv.WebSocketServices.Paths)
Console.WriteLine("- {0}", path);
}
Console.WriteLine("\nPress Enter key to stop the server...");
Console.ReadLine();
wssv.Stop();
}
有關JavaScript中的Web套接字的更多信息: HTML 5 Web套接字 。
另外,一個好的c#Web套接字庫: C#Web套接字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.