标签: sharepoint-2013

如何为sharepoint 2013设置开发环境

我在虚拟机中的Windows Server 2012操作系统中安装了sharepoint 2013基础,sql server 2012.

我需要为sharepoint 2013设置开发环境.任何人都可以帮助我解决我必须安装的问题.

我有一些问题

必须在哪里安装Visual Studio 2012(在客户端或服务器VM中)?我必须安装哪些组件?我需要安装Sharepoint Designer吗?

请帮助我解决这些问题.

干杯!

sharepoint sharepoint-designer sharepoint-2010 sharepoint-2013

8
推荐指数
2
解决办法
2万
查看次数

适用于SharePoint 2013内部部署,Power BI和自定义Web应用程序的ADFS单一登录?

脚本

有一个用户存储,即内部部署AD.ADFS为SharePoint 2013和Power BI提供身份验证.

自定义Web应用程序需要从AD验证用户.Web应用程序后端还需要访问SharePoint REST API.

目标是使用单点登录实现上述目标.如果签入三个应用程序中的任何一个,用户不必输入其他任何一个的凭据.此外,自定义Web应用程序还显示来自SharePoint(iFrame和REST API)和Power BI(iFrame)的内容.

我们尝试了以下两种解决方案,但在任何一种情况下都遇到了问题.

解决方案1

  • 用户在Web应用程序中输入凭据.
  • Web应用程序后端使用这些凭据从ADFS获取SAML令牌.
  • Web应用程序后端使用SAML令牌通过基于表单的身份验证向SharePoint用户进行身份验证,并检索FedAuth cookie.
  • Web应用程序后端使用FedAuth cookie向SharePoint发出REST API请求
  • Web应用程序前端使用SAML令牌通过基于表单的身份验证向SharePoint用户进行身份验证.这允许iFrame中的SharePoint内容.

什么不起作用:导航到Power BI或将其包含在iFrame中会将用户重定向到ADFS登录页面.这是因为用户尚未在浏览器中使用ADFS进行身份验证.

解决方案2

  • ADFS SSO也用于自定义Web应用程序.
  • 导航到三个应用程序中的任何一个都会将用户重定向到ADFS登录页面
  • 用户输入其凭据并使用SAML令牌重定向回应用程序.
  • 导航到任何其他两个应用程序会将用户重定向到ADFS,ADFS将使用另一个SAML令牌重定向回应用程序,而无需用户再次登录.
  • 这允许SharePoint和Power BI内容都包含在iFrame中的Web应用程序中.

什么不起作用:Web应用程序无法使用从ADFS为Web应用程序收到的SAML令牌向SharePoint发出REST API请求.我们已尝试使用该SAML令牌代表登录用户从ADFS for SharePoint请求另一个令牌.这也不起作用.同样,SharePoint 2013内部部署可能不会代表请求接受.

有没有办法为所有三个应用程序提供SSO,同时还可以从Web应用程序获得对SharePoint的REST API访问?用户只需登录一次,最好只登录Web应用程序.

sharepoint adfs adfs2.0 sharepoint-2013 powerbi

8
推荐指数
1
解决办法
520
查看次数

SharePoint客户端对象模型中的"编码"登录名

我正在编写一个小型.NET概念验证控制台应用程序,它在SharePoint文档库上执行一系列操作.我注意到以下方法需要一个"编码"登录名 - 即登录名,包括提供者信息,例如i:0#.w|DOMAIN\user.

context.Web.EnsureUser(encodedLoginName);
context.Web.SiteUsers.GetByLoginName(encodedLoginName);
Run Code Online (Sandbox Code Playgroud)

如何DOMAIN\userSharePoint客户端对象模型中可靠地将用户名转换为此编码格式?

我读过一对夫妇博客文章,与解决这一问题SPClaimProviderManager,这是不提供客户端的API中.

.net c# sharepoint-api sharepoint-clientobject sharepoint-2013

7
推荐指数
1
解决办法
6606
查看次数

SharePoint 2013 - 通过REST获取SPListItem版本

我有一个启用了版本控制的SharePoint 2013列表.我需要通过REST获取SPListItem版本列表.我可以通过该请求获取SPListItem:http://spbreportportal/Projects/_api/lists/getbytitle('Projects')/Items(1) 但我无法在文档中找到并在响应中如何检索此项目的所有版本.可能吗?

sharepoint sharepoint-2013

7
推荐指数
2
解决办法
2万
查看次数

高信任,S2S配置中SharePoint 2013应用程序生命周期事件接收器标注的身份验证选项

我有一个使用标准Visual Studio 2013 PHA模板编写的内部部署,高信任提供商托管应用程序(PHA).我已经按照Kirk Evans在他的博客中提供的High-Trust/S2S应用程序的配置步骤:

http://blogs.msdn.com/b/kaevans/archive/2012/11/27/creating-high-trust-sharepoint-apps-with-microsoft-office-developer-tools-for-visual-studio-2012-预览2.aspx

在我添加一项服务来托管AppInstalled事件的事件接收器之前,一切都按预期工作,而不需要太多修改.当我尝试在启用事件的情况下安装应用程序时,我从SharePoint收到以下错误:

远程事件接收器标注失败.详细信息:HTTP请求未经授权,客户端身份验证方案为"匿名".从服务器收到的身份验证标头是"NTLM; Negotiate".

开箱即用的PHA未配置为在其服务绑定中支持匿名身份验证.当我通过web.config添加对匿名身份验证的支持时,应用程序将安装并且所有事件接收器逻辑都按预期执行,包括将列表和安全组添加到主机Web的CSOM调用.

这让我有一个由两部分组成的问题:

  1. 匿名访问是否对High-Trust/S2S应用程序事件接收器有明确要求?一方面,这似乎是一个安全漏洞.另一方面,我没有找到任何方法强制SharePoint在应用程序生命周期事件期间使用除匿名之外的身份验证方案.我错过了什么吗?
  2. 如果需要匿名访问,是否有人建议(测试和确认)最佳实践以获得保护通信的其他方法?我想到了IP地址限制,但我还没有完全考虑过它.

TIA

authentication configuration sharepoint-2013

7
推荐指数
1
解决办法
882
查看次数

如何在SharePoint项目更新事件中标识更新的实际文件与项目属性更新

有没有办法我们可以在项目更新事件中识别与项目关联的文档(文件)是否更新?

谢谢,Mallikarjun

sharepoint sharepoint-2010 sharepoint-2013

7
推荐指数
1
解决办法
212
查看次数

对 Microsoft Sharepoint API 的 curl 请求?

是否有一种简单的方法可以使用对 REST API的cURL请求来访问我的 Sharepoint 帐户上的文件?例如

curl -i -H "Authorization: Bearer <some-key-here>" https://mysharepoint.com/_api/web/Lists
Run Code Online (Sandbox Code Playgroud)

我已阅读有关应用程序身份验证和授权的所有文档,但在这种情况下,我没有可以注册的“应用程序”。我只需要在 REST 请求中使用某种 API 密钥。如何以这种方式使用 REST API?

我很感激对此问题的任何见解。

rest sharepoint curl sharepoint-api sharepoint-2013

7
推荐指数
2
解决办法
1万
查看次数

从手机上传到Angular的图片是侧面或颠倒的

我能够将我的桌面上的图像上传到基于Angular的Web应用程序,而不会出现问题,但是如果我从手机(如iPhone)上传,请使用"拍摄照片或视频"或"照片库"功能,当在横向拍摄时,它会导致图像在纵向拍摄时或横向拍摄.这是我目前的上传功能.任何线索/让其他人都有同样的问题从iPhone /移动电话上传到移动Web应用程序到SharePoint库?

这是我的上传功能:

  // Upload of images
    $scope.upload = function () {
        //console.log($scope.files);
            if (document.getElementById("file").files.length === 0) {
                alert('No file was selected');
                return;
            }
            var parts = document.getElementById("file").value.split("\\");
            var uploadedfilename = parts[parts.length - 1];
            var basefilename = uploadedfilename.split(".")[0];
            var fileextension = uploadedfilename.split(".")[1];
            var currentdate = new Date();
            var formatteddate = $filter('date')(new Date(currentdate), 'MMddyy-hmmssa');
            var filename = basefilename + formatteddate + '.' + fileextension;
            var file = document.getElementById("file").files[0];
            uploadFileSync("/sites/asite", "Images", filename, file);
        }

        //Upload file synchronously
    function uploadFileSync(spWebUrl, library, filename, file) …
Run Code Online (Sandbox Code Playgroud)

iphone sharepoint jquery-mobile angularjs sharepoint-2013

7
推荐指数
1
解决办法
2538
查看次数

如何从字段中提取类型?

在SharePoint Server端代码中,您可以编写如下内容:

field.fieldvalueType
Run Code Online (Sandbox Code Playgroud)

有时会给你类型(DateTime,或其他).令人讨厌的是,有时,它只返回Null(例如,ID字段).

在CSOM中,您没有该字段.但是,有以下TypeAsString类型的SharePoint类型:

  • 计算
  • 整数
  • 注意

我想做的是从MSDN中获取这个巨大的表格:

当我知道我正在处理"整数"字段时,提取"Int32",并从SharePoint的注释中提取"System.String".

这种方法有效,但它是所有黑客的母亲:

var myTempItem = list.AddItem(new ListItemCreationInformation());
myTempItem.Update();
context.ExecuteQuery();

context.Load(myTempItem);
context.ExecuteQuery();
Run Code Online (Sandbox Code Playgroud)

创建后,您可以使用:

myTempItemCreated[fieldImTryingToGetTypeOf.Title].GetType().FullName - > Gives-> System.Int32

现在,做到这一点的正确方法是什么?我只是希望答案不是十英尺长的开关案例声明.

c# sharepoint-2013 csom

7
推荐指数
1
解决办法
3163
查看次数

如果满足条件,则使用JQuery添加元素的链接

我是HTML,CSS和JavaScript的新手.我试图使用jQuery使按钮处于活动或非活动状态,具体取决于一天中的时间.在定义了时间(d),open时间和close时间后,我设法让图像正确更改.但是,根据一天中的时间,我无法为按钮分配链接.

如果时间介于open和之间,则此代码正确应用类close.ButtonOne只有ManagersChatButtonActive在JSFiddle中应用类时,它才正确地将链接应用于div .但是在SharePoint中,即使不满足时间条件,也会应用链接.

如何在仅满足'if'条件时才能应用链接?

(这是我第一次使用Stack Overflow,如果这个问题没有得到很好的解释或解释,那么道歉).

$(document).ready(function() {
    var d = new Date();
    var open = new Date();
    open.setHours(9);
    open.setMinutes(0);
    open.setSeconds(0);

    var close = new Date();
    close.setHours(18);
    close.setMinutes(0);
    close.setSeconds(0);

    if (d >= open && d < close) {
        $(".ButtonOne").addClass("ManagersChatButtonActive");
        $(".ButtonOne").wrap('<a href="http://www.google.com"/>');
    } else {
        $(".ButtonOne").addClass("ManagersChatButtonInactive");
    }
});
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery sharepoint-2013

7
推荐指数
1
解决办法
229
查看次数