Portar una aplicación C# a Mono, necesita usar FirewallAPI. ¿Hay un mono equivalente?

He escrito un servicio de Windows que necesito transferir a Mono para que pueda usarse en plataformas Mac/Linux.

Hace uso de FirewallAPI.dll (creo que ese es el nombre real...). Los otros nombres son NetFwTypeLb, NATUPNPLib y NETCONLib.

He estado buscando en Google, tratando de encontrar una manera de implementar esto en plataformas Mac/Linux, pero no puedo encontrar lo que podría usar para hacer esto.

es posible? Y combinando otra pregunta con esta: ¿las plataformas Mac / Linux permiten que los servicios (creo que también se llaman 'daemons') se instalen y ejecuten fácilmente?

Gracias, Madeline

Solo como nota, este es el código actual que estoy usando, lo obtuve de otra pregunta de StackOverflow:

public class Firewall
{
    public static INetFwMgr WinFirewallManager()
    {
        Type type = Type.GetTypeFromCLSID(
            new Guid("{304CE942-6E39-40D8-943A-B913C40C9CD4}"));
        return Activator.CreateInstance(type) as INetFwMgr;
    }
    public bool AuthorizeProgram(string title, string path,
        NET_FW_SCOPE_ scope, NET_FW_IP_VERSION_ ipver)
    {
        Type type = Type.GetTypeFromProgID("HNetCfg.FwAuthorizedApplication");
        INetFwAuthorizedApplication authapp = Activator.CreateInstance(type)
            as INetFwAuthorizedApplication;

        authapp.Name = title;
        authapp.ProcessImageFileName = path;
        authapp.Scope = scope;
        authapp.IpVersion = ipver;
        authapp.Enabled = true;

        EventLog.WriteEntry("MachineVerification", authapp.Name + " " + authapp.Scope + " " + authapp.IpVersion);

        INetFwMgr mgr = WinFirewallManager();
        try
        {
            mgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(authapp);

            EventLog.WriteEntry("MachineVerification", authapp.Name + " " + authapp.Scope + " " + authapp.IpVersion);
        }
        catch (Exception ex)
        {
            EventLog.WriteEntry("MachineVerification", "MROW!" + ex.Message);
            return false;
        }
        return true;
    }
}

preguntado el 12 de junio de 12 a las 22:06

Para demonios, consulte mono-service (que está construido con Mono) -

1 Respuestas

¡Olvidé responder esto cuando lo descubrí todo!

En OS X, no hay necesidad de hacer una excepción de firewall. OS X le pedirá al usuario que le dé permiso a su aplicación para acceder a Internet.

Sin embargo, no estoy seguro acerca de Linux, pero la cobertura Mono es mucho mayor en Linux, así que estoy seguro de que alguien ha respondido esta pregunta para Linux antes.

Respondido el 22 de junio de 12 a las 18:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.