程序集的安全性问题。如何将程序集注册为信任程序集。。。。。

rock1981 2004-06-19 09:46:31
问题如上,
我有一个C#的dll要在Web程序中使用,由于该dll中用到了API中的函数,这样的话会出现安全方面的问题.

解决方法一:
通过管理工具.Net向导将dll添加为信任程序集。

现在问题是我想通过自已写一段代码将我dll添加为信任程序集来取代管理工具.Net向导

如果可以饶过安全策略那最好了,不过这至今没找到答案,请高人指点。。
...全文
159 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rock1981 2004-06-30
  • 打赏
  • 举报
回复
好是好就是太多了。。能不能简单点。。
大雨仔 2004-06-30
  • 打赏
  • 举报
回复
要研究一下再说
elite2018 2004-06-19
  • 打赏
  • 举报
回复
you can achieve it by Reflection ,
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Reflection" %>

<script language="C#" runat=server>

void Page_Load(Object source, EventArgs e) {

output.Text = "<pre>" + GetTypes.Go() + "</pre>";
}

class GetTypes
{
public static string Go()
{
StringWriter strWriter = new StringWriter();
Console.SetOut(strWriter);

//获取 mscorlib 程序集, 它是在其中定义的一个对象
Assembly a = typeof(Object).Module.Assembly;

//获取此程序集中的所有类型
Type [] types = a.GetTypes ();

//让我们来看看它们,并在执行时收集一点数据。
int numValueTypes = 0;
int numInterfaces = 0;
int numClasses = 0;
int numArrays = 0;

Console.WriteLine ("从程序集“{0}”中获取所有类型", a.GetName());
Console.WriteLine("将只列出接口类型。");
Console.WriteLine ("----------------------------------");
foreach (Type t in types)
{
if (t.IsClass) numClasses++;
if (t.IsValueType) numValueTypes++;
if (t.IsArray) numArrays++;

if (t.IsInterface) {
Console.WriteLine (t.Name + ""); //仅输出接口的名称
numInterfaces++;
}
}

//写出汇总
Console.WriteLine("-----------------------------------");
Console.WriteLine("在库 {1} 中的 {0} 个类型中:", types.Length, typeof(Object).Module.ToString());
Console.WriteLine ("{0} 个是接口(已列出)", numInterfaces);
Console.WriteLine ("{0} 个是值类型", numValueTypes);
Console.WriteLine ("{0} 个是类", numClasses);
Console.WriteLine ("{0} 个是数组", numArrays);

Console.WriteLine("-----------------------------------");
Console.WriteLine();

//使用其文件名加载此程序集
try {
Assembly b = Assembly.LoadFrom
("c:/program files/microsoft.Net/.NET FrameworkDK/samples/quIckstart/howto/samples/reflection/gettypes/GetTypes.exe");

Console.WriteLine ("从程序集“{0}”中获取所有类型", b.GetName());
Console.WriteLine("-----------------------------------");

//获取此程序集的类型
Type [] types2 = b.GetTypes ();
foreach (Type t in types2)
{
Console.WriteLine (t.FullName + ""); //类型不多,所以我们可以将它们全部输出
}
}
catch (Exception) {
// 只是防备在指定的目录中找不到文件
Console.WriteLine("未找到对保存此应用程序的程序集信息的");
Console.WriteLine("文件的引用。");
Console.WriteLine("请更改此页的源文件,以在其他目录中查找");
}

Console.WriteLine("-----------------------------------");

return strWriter.ToString();
}

}

//一些其他的任意类,以便程序集的此模块属于具有一些类型的程序集的一部分
public class TestClass1
{
}

public class TestClass2
{
}

</script>


<html>
<head>

<link rel="stylesheet" href="intro.css">
</head>

<body style="background-color:f6e4c6">
<p>

<table>
<tr align=left><td><b>下面的示例列出给定程序集的类型</b>。我们说明如何获取包含此特定代码的程序集的类型,以及如何从 MSCorLib 程序集获取信息。由于 MSCorLib 中有太多类型,我们在此示例中选择了只显示接口(而这仍将产生一个包含 100 个以上接口的列表)。
<hr>
</td></tr>

<tr><td><h4><asp:label id="output" runat="server"/></h4></td></tr>
</table>

</body>
</html>

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧