【问题标题】:Sitecore 7.2 - Item Web API-User AuthenticationSitecore 7.2 - 项目 Web API - 用户身份验证
【发布时间】:2014-10-12 13:24:28
【问题描述】:

我想限制 Sitecore Item Web API 仅将数据发送给经过身份验证的用户,并且根据文档,我们需要将 http request header 中的用户名和密码传递为 X-Scitemwebapi-UsernameX-Scitemwebapi-Password

为此,我使用了以下代码:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://scapidemo.local/-/item/v1/?sc_itemid={110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}&sc_database=master");

request.Headers["X-Scitemwebapi-Username"] = "admin";
request.Headers["X-Scitemwebapi-Password"] = "b";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Response.Write(String.Format("Content length is {0}", response.ContentLength));
Response.Write(String.Format("Content type is {0}", response.ContentType));
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream();

// Pipes the stream to a higher level stream reader with the required encoding format. 
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);

Response.Write("<br /> Response stream received. <br />");
Response.Write(readStream.ReadToEnd());

Sitecore.ItemWebApi.config 我为我的网站添加了如下设置:

itemwebapi.mode="StandardSecurity"
itemwebapi.access="ReadOnly"
itemwebapi.allowanonymousaccess="false"/>

现在在运行我的应用程序时出现此错误:

{"statusCode":401,"error":{"message":"Access to site is not granted."}}  

【问题讨论】:

    标签: c# sitecore sitecore7.2


    【解决方案1】:

    您传递的用户没有它所属的域。 ItemWebAPI 没有默认域,因此每次您拨打电话时都需要像“域\用户”一样传递您的用户。

    所有这些 - 像这样尝试:

    request.Headers["X-Scitemwebapi-Username"] = @"sitecore\admin";
    request.Headers["X-Scitemwebapi-Password"] = "b";
    

    【讨论】:

    • 如果我添加更改值 'sitecore\admin',则会出现无效字符错误
    • @Vikram 很高兴它有帮助!
    猜你喜欢
    • 2016-07-16
    • 2014-05-02
    • 2013-02-08
    • 2018-07-13
    • 1970-01-01
    • 2012-07-28
    • 2016-04-12
    • 2017-09-03
    相关资源
    最近更新 更多