从 .NetCore 应用程序访问 Linux 个根文件

Access Linux Root Files from .NetCore app

我创建了一个在 Raspberry Pi 上运行良好的 .net 核心应用程序。

我想尝试将此设备连接到 wifi 路由器或来自 iPhone 的接入点。

看了之后我知道你可以创建一个conf文件并通过卡将它放到sd卡上reader。

我想做的是允许用户通过我自己的界面输入他们的 wifi 详细信息,并让我自己的 c# 程序进行更改。

我花了一些时间,但没有找到例子。

如果有人知道...

基于 GUI 的配置的通常方法不是直接编辑系统配置文件,而是通过网络守护程序提供的配置界面进行对话。

wpa_supplicant 可以通过 wpa_cli 工具进行对话。您可以通过将 wpa_cli 作为一个单独的进程来使用它,并将 stdio 重定向到管道中,然后将配置命令发送到 which/from 中。

更新: 要与 wpa_cli 对话,您需要创建一个具有重定向输出的进程。使用 Mono,您可以按以下方式进行操作

private void start_wpa_cli()
{
    ProcessStartInfo psI = new ProcessStartInfo("wpa_cli");
    psI.UseShellExecute = false;
    psI.RedirectStandardInput = true;
    psI.RedirectStandardOutput = true;

    Process p = new Process();
    p.StartInfo = psI;
    p.Start();

    StreamWriter sw = p.StandardInput;
    sw.AutoFlush = true;
    StreamReader sr = p.StandardOutput;

    ...

然后您可以通过 sw 发送 wpa_cli 命令并从 sr 读取结果。 wpa_cli 的命令可以在它的联机帮助页中找到。

如果使用NetworkManager,您可以通过它的D-Bus 接口与它对话。 更新: 要从 .Net/Mono 访问 D-Bus,您可以使用 https://github.com/mono/dbus-sharp