【问题标题】:What ASP.NET permissions do I need to access a serial port?访问串行端口需要哪些 ASP.NET 权限?
【发布时间】:2011-08-14 18:51:17
【问题描述】:

我正在开发一个 asp.net 应用程序,我希望它通过串行端口与 arduino 板通信。我创建了一个可以做到这一点的 Windows 应用程序并且它工作,但是当我在我的 asp.net 应用程序上使用相同的代码时,我得到一个异常,说“访问端口 COM7 被拒绝”。现在我一直在网上寻找答案,我遇到了一个论坛,他们正在讨论通过使用模拟授予 asp.net 的权限。我对使用 .net 框架和串行端口非常陌生。如果有人可以提供帮助,请做或发布可能有帮助的链接。

提前感谢。

【问题讨论】:

    标签: .net asp.net serialization permissions serial-port


    【解决方案1】:

    尝试在串口块命令上打开连接和关闭连接。 例

     SerialPort COM = new System.IO.Ports.SerialPort("COM14");
    protected void btnRele1_Click(object sender, EventArgs e)
    {
        COM.Open();
        if (btnRele1.BackColor != Color.Green)
        {
            COM.WriteLine("1");
            btnRele1.BackColor = Color.Green;
            btnRele1.ForeColor = Color.White;
            btnRele1.Text = "Rele 1 - ON";
        }
        else
        {
            COM.WriteLine("2");
            btnRele1.BackColor = Color.LightGray;
            btnRele1.ForeColor = Color.Black;
            btnRele1.Text = "Rele 1 - OFF";
        }
        txtSerial.Text = COM.ReadLine();
        COM.Close();
    }
    

    【讨论】:

    • 与问题无关!
    【解决方案2】:

    我猜你正在使用SerialPort 类来进行这种交流。它的文档说明

    安全权限
    用于调用非托管代码的能力。关联枚举:UnmanagedCode

    Some more MSDN documentation about ASP.NET and security

    如果您的应用程序调用非托管代码,它必须以完全信任的方式运行。即使是限制最少的部分信任级别 High,也不允许调用非托管代码。

    You can configure the ASP.NET application's trust level like so.

    Wrapping Privileged Code 部分建议了一种解决方法,用于授予对整个应用程序的完全信任(这可能存在安全风险)。

    【讨论】:

      【解决方案3】:

      ASP.net 使用您计算机上的特定用户帐户。就像您登录的主要帐户一样。该用户帐户无权对硬件进行任何操作。

      要在 ASP.net 中模拟其他帐户,请执行以下操作:

      创建一个与网络用户具有所有相同权限的帐户,然后在 web.config 文件中的配置标签之间添加以下代码

      <identity impersonate="true" userName="somedomain\newUser" password="newUsersPassword" />
      

      【讨论】:

      • 我认为这并不完全准确,默认情况下(至少到 IIS 7.5)应用程序池标识以 NetworkService 运行。该文档指出网络服务具有“分配给用户和经过身份验证的用户的任何权限”。完全信任它应该完全能够与硬件交互。
      猜你喜欢
      • 2019-08-23
      • 2019-06-24
      • 2017-11-16
      • 2022-10-06
      • 2014-08-28
      • 2021-06-13
      • 2010-10-08
      • 2015-12-28
      • 1970-01-01
      相关资源
      最近更新 更多