使用客户端对象模型的 Sharepoint 2010 用户身份验证(windows 凭据)

Sharepoint 2010 User Authentication (windows Credential) with Client Object Model

我正在尝试登录到使用 Windows 集成 (NTLM) 身份验证的 SharePoint 网站。有两种方法可以输入 SharePoint 网站的凭据,Windows 身份验证和表单身份验证。

但是,在这个特定的网站上,表单身份验证被禁用,我只能使用 windows 身份验证。 有没有办法让我使用不同于我用来登录 windows 机器的凭据登录此站点?

在此处查看错误:Form authentication denied

        String site = "http://sharepoint/";
        ClientContext context = new ClientContext(site);
        context.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
        FormsAuthenticationLoginInfo formsAuthInfo = new FormsAuthenticationLoginInfo("MyUser", "MyPassword");
        context.FormsAuthenticationLoginInfo = formsAuthInfo;

        // The SharePoint web at the URL.
        Web web = context.Web;

        // We want to retrieve the web's properties.
        context.Load(web);

        // Execute the query to the server.
        context.ExecuteQuery();


        InitializeComponent();

我也试过用: context.Credentials = new NetworkCredential("user", "pass", 站点);

       ClientContext context = new ClientContext(site);
       context.Credentials = new NetworkCredential("user", "pass", site);


        // The SharePoint web at the URL.
        Web web = context.Web;

        // We want to retrieve the web's properties.
        context.Load(web);

        // Execute the query to the server.
        context.ExecuteQuery();


        InitializeComponent();

我收到以下 401(未授权)error

与其将 ClientContext 对象的 AuthenticationMode 属性 更改为 FormsAuthentication,不如尝试将对象的 Credentials 属性 设置为有效网络凭据对象。

ClientContext context = new ClientContext("http://sharepointsite/");
context.Credentials = new NetworkCredential("username","password","domain");

不知道是否晚了,但默认情况下,托管客户端对象模型通过使用他们的 Windows 凭据 (DefaultCredentials) 对用户进行身份验证。

因此您不需要显式设置凭据。只需设置以下 -

context.AuthenticationMode = ClientAuthenticationMode.Default;