这个问题折腾了我好几天,现在把我从网上查到的并且经过实践出的方法写出来,给遇到相同问题的朋友一些帮助
其实我这个方法是针对源网站是code-behind形式的解决方法,如果你的代码和页面是在一起的,那么根本没这么麻烦
1、把自己的asp.net网站发布,编译成一个dll的形式。
因为sharepoint不支持code-behind形式,如果不想自己去把代码和页面合并起来,哪么只能选择编译成dll,最好去装一个vs2005的插件,它可以把生成的dll命名。反正我用随即生成的dll测试是不成功的,也许哪步没作对吧
插件下载地址:http://download.microsoft.com/download/9/4/9/9496adc4-574e-4043-bb70-bc841e27f13c/WebDeploymentSetup.msi
2、把生成的dll存入sharepoint根目录下的bin文件夹,并修改根目录下的webconfig,把此dll设置成安全控件
在web.config中查找 <SafeControls>,在其下添加
<SafeControl Assembly="soft_oa, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="channel_oa" TypeName="*" Safe="True" />
其中,assembly后面的内容使用 Lutz Reader's .NET Reflector 这个软件来查看。
还要注意两点,编译前的cs文件里面的代码要放在命名空间里,格式如下
namespace mynamespace
{
public partial class mykq : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{


..
}
}
}
而页面文件里面的 Inherits 要写成 Inherits="mynamespace.mykq" 的形式
3、如果你的代码中有数据库的连接,那么还要进行下面的修改
在web.config中查找
<trustLevel name="WSS_Minimal" policyFile="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\config\wss_minimaltrust.config" />
根据路径找到wss_minimaltrust.config
在其中查找 <SecurityClasses>,把下面代码放入里面
<SecurityClass Name="SqlClientPermission" Description="System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
然后查找 IPermission ,把下面代码放入其下
<IPermission class="SqlClientPermission"
version="1"
Unrestricted="true"
/>
4、在designer中,新建个虚拟站点,然后把你的页面通过designer传到虚拟站点中,就OK了

浙公网安备 33010602011771号