我有以下代码段:
using (SPSite site = new SPSite(this.ListAddress))
{
using (SPWeb web = site.OpenWeb())
{
}
}
如何进行身份验证,以便在配置文件中设置域用户名+密码。
答案 0 :(得分:9)
让您想要运行SharePoint中已知代码的用户,然后使用
SPSite.RootWeb.EnsureUser("username").UserToken
您可以获得该用户的SPUserToken
用它打开SPSite,就像这样
var token = SPSite.RootWeb.EnsureUser("usernameToImpersonate").UserToken;
using (SPSite site = new SPSite(token, this.ListAddress))
{
using (SPWeb web = site.OpenWeb())
{
// code here will be executed as selected user
}
}
答案 1 :(得分:2)
上面运行的代码将根据当前用户身份进行验证,即运行当前线程的用户的身份。
您可以使用NetworkCredntial类和WindowsIdentity类在不同的用户下运行代码
见这两个原子:
http://msdn.microsoft.com/en-us/library/system.net.networkcredential%28VS.71%29.aspx
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity.aspx
答案 2 :(得分:1)
从问题中不清楚你想做什么。但是,如果您正在寻找模拟,请注意您可以通过SPUserToken中的SPSite constructor对象。
然后,您从模拟的SPSite对象创建的任何对象的行为就像它们是由该用户创建的一样。