gpt4 book ai didi

c# - 如何将.net程序集标记为安全?

转载 作者:IT王子 更新时间:2023-10-29 04:46:56 24 4
gpt4 key购买 nike

如何将程序集标记为“安全”?

另外,当程序集中的某些内容不“安全”时,我如何让Visual Studio告诉我?

有时,除非它是“安全的”(例如from SQL Server),否则不能使用程序集。

我希望我的 Assembly 被标记为安全。如果我的程序集由于不安全而无法标记为安全,我想知道如何知道我的程序集不安全。

Visual Studio中有一些概念似乎与安全性有关,这些概念可能与也可能与“安全”的程序集无关:

  • 允许使用不安全的代码汇编选项:

  • 如果我选中“允许不安全代码”选项,可以使用什么?
  • 如果我取消选中“允许不安全代码”选项,怎么办?
  • “不安全代码”与“安全”程序集有什么关系(如果有)?

    (我问是因为我的程序集没有“允许不安全的代码”,但允许P/Invoke调用-我认为这是“不安全的”定义)
  • ClsCompliant 汇编选项:
    [assembly: CLSCompliant(true)]
    namespace MyApplication
  • 如果存在,“cls兼容”代码与“安全”程序集有什么关系?
  • 不安全的代码块:
    int error;
    unsafe
    {
    error = 0x80004005;
    }
    unsafe块中的代码是“不安全的”
  • UnsafeNativeMathods

    Microsoft建议创建一个名为UnsafeNativeMethods的类,其中包含不安全的托管代码:
    [SuppressUnmanagedCodeSecurity]
    internal static class UnsafeNativeMethods
    {
    ...
    }

    这与SafeNativeMethods相反:
    [SuppressUnmanagedCodeSecurity]
    internal static class SafeNativeMethods
    {
    ...
    }

    包含安全的 native 方法和NativeMethods:
    internal static class SafeNativeMethods
    {
    ...
    }

    包含 native 方法。

  • 如何将程序集标记为“安全”?

    SQL如何知道汇编是“不安全的”?

    最佳答案

  • this读取,SQL Server的“安全”为:

  • SAFE is the most restrictive permission set. Code executed by an assembly with SAFE permissions cannot access external system resources such as files, the network, environment variables, or the registry



    因此,有关在SQL Server代码域内设置的代码执行权限

    VS的
  • Unsafe标志基本上与代码执行安全性无关,但可启用非托管代码执行。因此,这涉及将非托管代码集成到托管代码库

  • 定义的
  • CLS Compilant属性here用于定义标有该属性的程序集的代码,例如遵循CSL(通用语言规范)准则的代码。因此,这与编译和代码架构有关。

  • How do i mark as assembly as "safe"?



    它在此答案的第一个链接中定义,并且与SQL Server集成有关。

    How does SQL know that as assembly is "not safe"?



    考虑提供的描述:“在SQL Server实例中创建一个包含类元数据和托管代码作为对象的托管应用程序模块”,SQL Server在 metadata上进行中继,该字段在某些字段中提供有关“安全”这一事实的信息。或不。

    关于c# - 如何将.net程序集标记为安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795498/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com