小编use*_*929的帖子

在线授权Office 365/Sharepoint

我编写了一个作为(PaaS)托管在Azure中的WCF服务.该服务反过来需要与Sharepoint 2013 Online/Office 365交谈.

我正在使用Sharepoint Client对象模型与它通信,但不断收到以下错误:"远程服务器返回错误:(403)禁止"当我们登录通过浏览器访问SharePoint实例时,它通常会带你到 https://login.microsoftonline.com/login.srf,这样您就可以使用Live ID登录.问题是我们使用的是联合帐户而不是Live ID,因此会再次重定向到adfs站点进行登录.我查看了使用基于声明的身份验证的http://www.wictorwilen.se/Post/How-to-do-active-authentication-to-Office-365-and-SharePoint-Online.aspx上的代码示例,但在尝试检索Saml令牌时,这始终会失败,并显示"身份验证失败"消息.

如果我理解正确的话.这样做的一种方法是获取Saml Token,将其传递给SPO,然后SPO将返回两个cookie,我需要将这些cookie包含在使用Client对象模型发出的请求中.问题是我没有找到任何关于如何在C#中使用Federated帐户进行身份验证的正确示例.

任何人都可以指出我正确的方向,关于如何继续授权我的WCF服务与SharePoint交谈.

对不起,如果这是在错误的论坛.我不确定这是Azure问题还是仅仅是SharePoint,因为我对这两种技术都不熟悉.

c# authentication sharepoint sharepoint-2013

45
推荐指数
1
解决办法
8148
查看次数

WCF查询对象数组

我还在研究WCF解决方案,该解决方案应该能够查询程序的后端并返回结果.

后端存储一个被调用对象的字典,Groups可以使用以下函数查询它们:

  • GetGroup 按ID获取单个组
  • GetGroups 按标签获取组列表.

GetGroup罚款的WCF测试客户端,我已经建立了应用程序的工作.它适用于以下代码形式的应用程序:

        List<string> values = new List<string>();
        GroupServiceClient client = new GroupServiceClient("WSHttpBinding_IGroupService");
        www.test.co.uk.programme.programme Group = new www.test.co.uk.programme.programme();
        DateTime time = DateTime.Now;
        values.Clear();
        client.Open();

        Group.number = textBox1.Text;
        client.GetGroup(ref time, ref Group);

        GroupStorageMessage toReturn = new GroupStorageMessage();
        toReturn.group = Group;

        selectedGroupId = Convert.ToString(toReturn.group.number);

        values.Add(Convert.ToString(toReturn.group.number));
        values.Add(Convert.ToString(toReturn.group.name));

        listBox1.ItemsSource=values;

        client.Close();
Run Code Online (Sandbox Code Playgroud)

GetGroups与WCF测试客户端完美配合,但与我的应用程序无关.

它发送查询,但确实返回Null(请注意,此代码是另一个应用程序,我使用的是引用而不是代理文件)

        ServiceReference1.programme Group = new ServiceReference1.programme();
        ServiceReference1.GroupServiceClient Client = new ServiceReference1.GroupServiceClient();
        DateTime Time = DateTime.Now;

        Client.Open();

        string[] aa = new string[1]; …
Run Code Online (Sandbox Code Playgroud)

c# wcf serialization

6
推荐指数
1
解决办法
935
查看次数

以编程方式基于列在sharepoint中创建树视图

我必须为SharePoint开发一个Web部件,用于读取列表并创建树视图.

树视图必须按如下方式组织:根(或根)将由表示类别的选择字段创建,例如Drinks,子节点是包含该类别的行的名称,树视图必须以编程方式创建.

List:
Title(string)       Category(Choice)
Coke            Drinks
Beer            Drinks
Fish            Food
Chips           Food

Would produce this:
Drinks
    Coke
    Beer
Food
    Fish
    Chips
Run Code Online (Sandbox Code Playgroud)

我到目前为止的代码

  TreeView treeView;
    TreeNode rootNode;
    TreeNode childNode;


    protected override void RenderContents(System.Web.UI.HtmlTextWriter writer)
    {
        // render the control
        base.RenderContents(writer);
    }

    protected override void CreateChildControls()
    {
        List<TreeNode> items = new List<TreeNode>();

        base.CreateChildControls();

        // get the current site
        using (SPSite Site = new SPSite(SPContext.Current.Site.Url + "/UberWiki"))
        {
            using (SPWeb currentWeb = Site.OpenWeb())
            {

                // set the tree view properties …
Run Code Online (Sandbox Code Playgroud)

c# linq treeview sharepoint sharepoint-2010

5
推荐指数
1
解决办法
6461
查看次数

访问由CreateChildControls()创建的控件

我需要从另一个类访问CreateChildControls()创建的控件,这样当我选择文件时,我有一个字符串的路径来引用.

我已经尝试了动态创建的访问控件中的解决方案(c#)访问动态创建的控件的问题 但是没有快乐谢谢

    publicTextBox txtUrl; 

    protected override void CreateChildControls()
    {
        Label lblUrl = new Label();
        lblUrl.ID = "lblUrl";
        lblUrl.Text = "Url: ";
        Controls.Add(lblUrl);

        TextBox txtUrl = new TextBox();
        txtUrl.ID = "txtUrl";
        Controls.Add(txtUrl);

        AssetUrlSelector picker = new AssetUrlSelector();
        picker.ID = "ausUrl";

        picker.DefaultOpenLocationUrl =  OpenUrl;
        picker.AssetUrlClientID = txtUrl.ClientID;
        picker.AssetUrlTextBoxVisible = false;
        Controls.Add(picker);

        Control control = Page.LoadControl(_ascxPath);
        Controls.Add(control);

    }
Run Code Online (Sandbox Code Playgroud)

从另一个类我应该能够访问文本框

   protected void Button1_Click(object sender, EventArgs e)
    {
        AssetPicker asspi = new AssetPicker();

        string aaa = asspi.txtUrl.Text;



    }
Run Code Online (Sandbox Code Playgroud)

c# sharepoint-2010

3
推荐指数
1
解决办法
1955
查看次数