簡體   English   中英

ASP.NET C#MVC網站,如何在點擊按鈕時安裝驅動器?

[英]ASP.NET C# MVC Website, how can I mount a drive upon button click?

我願意解決這個問題。 我懷疑最好的方法是向控制器提交要安裝的路徑,然后控制器將傳回一個本地運行的python腳本並安裝路徑。 稍后我們可能需要驗證Active Directory權限,但這是另一個問題。 我們可以按照自己的意願配置所有客戶端和服務器,因此我們應該能夠允許mount腳本在下載后運行。 只關心安裝在Windows上,但mac是可選的。 我主要擔心的是如何讓服務器發送腳本並讓客戶端運行腳本,如果這是滿足這種必要性的正確方法; 第二個問題是我如何形成訪問任意任意遠程服務器共享的路徑,第三個問題是首先檢查權限。 任何幫助贊賞。

 public ActionResult ProjectMountSubmit(string project_path, int project_number) {
            //Send mount script to user and make him run it
            return RedirectToAction("Project", "Home", new { ProjectNumber = project_number });
        }

最終答案將腳本提交給瀏覽器。 用戶還可以設置瀏覽器自動打開它,還必須安裝python並將其與.py文件關聯,以便快速雙擊運行。 不確定該腳本/ python mime是否有效但它是否有效。 改進可能包括使用razor修改python腳本,以便它不是所有內部引號,失去顏色編碼。 請注意,您必須遞歸兩次轉義斜杠,一個用於文件流,另一個用於下載和運行的腳本。

public ActionResult ProjectMountSubmit(int project_number, string drive_letter) {
            ProjectsBAL b = new ProjectsBAL();
            Projects c = b.GetProject(project_number);
            //generate python mount script
            string script = "import ctypes\n" +
                            "import subprocess\n" +
                            "import os\n" +
                            "command = 'net use " + drive_letter + ": \\\\\\\\MSI\\\\Users\\\\gunslingor\\\\Desktop\\\\Storage\\\\" + c.CompanyName + "\\\\Clients\\\\" + c.ClientName + "\\\\" + c.ProjectNumber + "_" + c.ProjectName + "'\n" +
                            "returned = subprocess.Popen(command, shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)\n" +
                            "cmd_err_lines = returned.stderr.readlines()";

            var stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);
            writer.Write(script);
            writer.Flush();
            stream.Position = 0;
            //Send mount script to user, double click to run (python must be installed and associated to the file type py)
            return File(stream, "script/python", "Automount.py");
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM