当前位置: 代码迷 >> SharePoint >> 请问一下关于sharepoint2013客户端代码权限的有关问题
  详细解决方案

请问一下关于sharepoint2013客户端代码权限的有关问题

热度:285   发布时间:2016-05-02 07:04:07.0
请教一下关于sharepoint2013客户端代码权限的问题
想实现的功能:当前登录用户实现发布新闻源
代码如下:            ClientContext ctx = new ClientContext(newUrl );
            ctx.Credentials = CredentialCache.DefaultNetworkCredentials;
 SocialDataItem docLink = new SocialDataItem
                   {
                       ItemType = SocialDataItemType.Document,
                       Text = "link to picture",
                       Uri = docLinkUrl
                   };
                SocialPostCreationData postCreationData = new SocialPostCreationData();
                postCreationData.ContentText = "{0}";
                postCreationData.ContentItems = new SocialDataItem[1] { docLink };
                SocialFeedManager feedManager = new SocialFeedManager(ctx);
        
                feedManager.CreatePost(null, postCreationData);

               ctx.ExecuteQuery();
执行出现的错误:
远程服务器返回错误: (401) 未经授权。
解决方法:1。将当前网站集的web.config文件中,<add key="aspnet:AllowAnonymousImpersonation" value="true" />,改为value="false",或者是在代码中提升权限,此时不会出现问题,不管谁登录,执行的结果都是管理员在发贴,而不是当前用户。
2、在上面的代码中,将   ctx.Credentials = CredentialCache.DefaultNetworkCredentials;改为        NetworkCredential  cc=new NetworkCredential( "user", "pwd", "domain");
            ctx.Credentials = cc;可实现指定的用户发贴。可是不能写死啊,获取不了当前用户的密码。
想问的是:
通过什么方法来实现当前登录用户发贴,即执行代码后,发布者为当前登录的用户。我如何能实现用当前登录的用户来执行上面的代码呢?真是弄不明白了,请各位指点,先谢谢了。


------解决方案--------------------
使用代码 权限提升的方法不行吗?
你测试了吗?
------解决方案--------------------
不提权没有权限发布?
发布了还想不显示提权后的用户显示原用户?
不科学啊
------解决方案--------------------
引用:
Quote: 引用:

不提权没有权限发布?
发布了还想不显示提权后的用户显示原用户?
不科学啊

可能是我说的有问题,当前帐号是有权限的,
ctx.Credentials = CredentialCache.DefaultNetworkCredentials;改为        NetworkCredential  cc=new NetworkCredential( "user", "pwd", "domain");
            ctx.Credentials = cc;可实现指定的用户发贴,我可以获取当前当前登录的用户,域,但是密码不知道怎么传过来。
也就是不知道怎样把登录信息给ClientContext传递过去。

如果是服务器对象模型,可以提升权限将post item的created by设置为当前登录用户。客户端没试过,应该也有相应的方法。