具有客户端对象模型的 SharePoint 2010 用户身份验证(Windows 凭据)

本文关键字:身份验证 Windows 凭据 用户 2010 客户端 对象模型 SharePoint | 更新日期: 2023-09-27 18:30:14

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

但是,在此特定网站上禁用了表单身份验证,我只能使用 Windows 身份验证。有没有办法让我使用与我以前登录 Windows 机器不同的凭据登录此站点?

请参阅此处的错误:表单身份验证被拒绝

        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();

我还尝试使用: 上下文。凭据 = 新的网络凭据("用户"、"通过"、站点);

       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(未经授权)错误

具有客户端对象模型的 SharePoint 2010 用户身份验证(Windows 凭据)

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

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

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

因此,您无需显式设置凭据。只需设置以下内容 -

context.AuthenticationMode = ClientAuthenticationMode.Default;