您好我有一个SharePoint webpart,它被编译为DLL并放在我的SP站点的BIN文件夹中。我的webpart在我的本地机器上运行,但是当我把它投入生产时,它失败并带有
(401) Unauthorized.
在做了一些研究之后,我来到了所谓的“一跳规则”。意思是我必须传递网络用户的凭据,或使用
<identity impersonate= "true" />
在我的web.config中。我不想硬编码网络用户,所以我的问题是如何在我的网络部分中使用模拟? dll是否支持web.configs?谢谢你的帮助。
答案 0 :(得分:4)
您的网站部分生产失败可能是因为CAS;您可能需要提升权限级别或附加要在程序集上授予的特殊访问权限,因为它不像bin文件夹中那样完全受信任。
如果您确定这只是一个假冒问题,您是否可以只使用web.config中的节点?
答案 1 :(得分:2)
在SharePoint应用程序的web.config中,Impersonate始终设置为true,因此问题必须位于其他位置。部署到Web应用程序的BIN文件夹的Web部件在沙箱中运行,并且默认情况下具有有限的权限。也许这就是问题的根源。
答案 2 :(得分:1)
是的,正如都铎提到的那样,很可能是Code Access Security。如果您将其置于GAC中,则不会出现此问题(GAC完全受信任)。
以下是一些可以帮助您使用CAS和SharePoint Web部件的文章。诀窍是知道你需要哪些IPermissions。
答案 3 :(得分:0)
我不认为在DLL中添加它。据我所知。
答案 4 :(得分:0)
如果您正在查看“双跃点”问题,那么您将不会使用NTLM。您需要使用Kerberos身份验证,因为Kerberos票证可以从用户跳到Web服务器到Web服务。您需要使用SetSPN设置服务主体名称。
这个网络部分是否呼唤外部网络服务?或者是基于本地安全性的权限错误?