我有一个连接到SQL数据库的SharePoint功能。从该(Site-)功能中我可以访问DBMS甚至创建一个没有问题的新数据库(使用Linq2sql)
但是在 SAME 项目中的应用程序页面内,我甚至无法对刚创建的数据库执行简单的LinQ查询。
我收到错误"
用户' NT AUTHORITY \ ANONYMOUS LOGON' 登录失败
"
调试代码时,我可以看到凭据(SPWeb.CurrentUser)都是相同的(根本不是匿名的)
Feature Event Receiver和Application Page使用相同的连接字符串(Integrated Security = true)
从其他帖子我知道使用SQL-Login而不是集成安全可能帮助,但我很好奇为什么在事件接收器上一切正常,但在应用程序页面上没有效果?
答案 0 :(得分:0)
之前我遇到过这个问题,通常我只能在SPSecurity.RunWithElevatedPrivileges {
块中运行我的SQL代码,它运行正常。
请原谅我没有准确地说出语言/原因,但我相信它在eventreceiver代码中运行正常的原因是因为代码在不同于应用程序页面的更可信的上下文中执行。其他人可能比我更全面/更有说服力地解释。