C# 通过WinForm应用程序使用特定用户名/密码连接到Sharepoint网站
干草, 我正在开发一个windows窗体应用程序(C#),它连接到sharepoint网站并从中读取数据(列表) 问题是: 如何使用特定的用户名/密码连接到站点,而不使用当前的Windows用户或域用户 请指教 编辑:附言:在SP 2007上工作 我的代码:C# 通过WinForm应用程序使用特定用户名/密码连接到Sharepoint网站,c#,winforms,sharepoint,C#,Winforms,Sharepoint,干草, 我正在开发一个windows窗体应用程序(C#),它连接到sharepoint网站并从中读取数据(列表) 问题是: 如何使用特定的用户名/密码连接到站点,而不使用当前的Windows用户或域用户 请指教 编辑:附言:在SP 2007上工作 我的代码: SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite sourceSite = new SPSite(txtBoxSP.Te
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite sourceSite = new SPSite(txtBoxSP.Text))
{
SPWeb sourceWeb = sourceSite.RootWeb;
SPUserCollection usrs = sourceWeb.AllUsers;
SPListCollection col = sourceWeb.GetListsOfType(SPBaseType.GenericList);
foreach (SPList list in col)
System.Diagnostics.Debug.WriteLine(string.Format("My Name: {0}, Type: {1}, Length: {2}",
list.Title, list.GetType().ToString(), list.ItemCount.ToString()));
}
});
像这样:
var cc = new CredentialCache();
cc.Add(
new Uri(sourceSite.Url),
"NTLM",
new NetworkCredential("user", "password"));
sourceSite.Credentials = cc;
当然,硬编码这样的密码不是很安全。您可以向用户询问这一点。有另一个用户为此目的使用安全字符串
更新: 我没有注意到您正在使用SharePoint对象模型。最初我以为您是从WSDL生成代理。如何做到这一点。像这样:
var cc = new CredentialCache();
cc.Add(
new Uri(sourceSite.Url),
"NTLM",
new NetworkCredential("user", "password"));
sourceSite.Credentials = cc;
当然,硬编码这样的密码不是很安全。您可以向用户询问这一点。有另一个用户为此目的使用安全字符串
更新:
我没有注意到您正在使用SharePoint对象模型。最初我以为您是从WSDL生成代理。关于如何实现这一点。也许本文可以帮助您 从MSDN查找此页面中的给定行。我想这篇文章会告诉你一个方法。如果找不到这些行,请告诉我:)
也许这篇文章可以帮助你 从MSDN查找此页面中的给定行。我想这篇文章会告诉你一个方法。如果找不到这些行,请告诉我:)
“Microsoft.SharePoint.SPSite”不包含“凭据”的定义,并且找不到接受“Microsoft.SharePoint.SPSite”类型的第一个参数的扩展方法“凭据”(是否缺少using指令或程序集引用?)!请提供建议。关于更新:“web”对象是什么?我猜您提供的示例讨论的是web部件开发,而不是winApp,对吗?在示例(编号
[3]
)中,他们使用了一个SPUserToken
,它被传递给SPSite
的构造函数。缺少一些要点!,他在示例中使用的“web”对象是什么?它是“SPWeb”吗?什么是“inpuser”对象?我猜他使用了仅在sharepoint Web部件主机环境中找到的currentContext,或者我缺少了什么?。这是一个SPWeb
实例。请注意:“Microsoft.SharePoint.SPSite”不包含“凭据”的定义,并且找不到接受类型为“Microsoft.SharePoint.SPSite”的第一个参数的扩展方法“凭据”(是否缺少using指令或程序集引用?)!请提供建议。关于更新:“web”对象是什么?我猜您提供的示例讨论的是web部件开发,而不是winApp,对吗?在示例(编号[3]
)中,他们使用了一个SPUserToken
,它被传递给SPSite
的构造函数。缺少一些要点!,他在示例中使用的“web”对象是什么?它是“SPWeb”吗?什么是“inpuser”对象?我猜他使用了仅在sharepoint Web部件主机环境中找到的currentContext,或者我缺少了什么?。这是一个SPWeb
实例。看看这个: