SharePoint:如何从c#进行身份验证

时间:2009-08-26 17:38:45

标签: sharepoint

我有以下代码段:

using (SPSite site = new SPSite(this.ListAddress))
        {
            using (SPWeb web = site.OpenWeb())
            {

            }

        }

如何进行身份验证,以便在配置文件中设置域用户名+密码。

3 个答案:

答案 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对象创建的任何对象的行为就像它们是由该用户创建的一样。