C# Sitecore 7.2-项目Web API用户身份验证
我想限制Sitecore项目Web API仅向经过身份验证的用户发送数据&根据文档,我们需要在C# Sitecore 7.2-项目Web API用户身份验证,c#,sitecore,sitecore7.2,C#,Sitecore,Sitecore7.2,我想限制Sitecore项目Web API仅向经过身份验证的用户发送数据&根据文档,我们需要在http请求头中将用户名和密码作为X-Scitemwebapi-Username&X-Scitemwebapi-password 为了实现这一点,我使用了以下代码: HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(“http://scapidemo.local/-/item/v1/?sc_itemid={110D559F-DEA5-42EA-9C1C
http请求头中将用户名和密码作为X-Scitemwebapi-Username
&X-Scitemwebapi-password
为了实现这一点,我使用了以下代码:
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(“http://scapidemo.local/-/item/v1/?sc_itemid={110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}&sc_database=master”);
request.Headers[“X-Scitemwebapi-Username”]=“admin”;
请求标题[“X-Scitemwebapi-Password”]=“b”;
HttpWebResponse=(HttpWebResponse)request.GetResponse();
Write(String.Format(“内容长度为{0}”,Response.ContentLength));
Write(String.Format(“内容类型为{0}”,Response.ContentType));
//获取与响应关联的流。
Stream receiveStream=response.GetResponseStream();
//使用所需的编码格式将流传送到更高级别的流读取器。
StreamReader readStream=新的StreamReader(receiveStream,Encoding.UTF8);
写入(“
接收到响应流。
”);
Write(readStream.ReadToEnd());
在Sitecore.ItemWebApi.config
中,我为我的网站添加了如下设置:
itemwebapi.mode=“StandardSecurity”
itemwebapi.access=“只读”
itemwebapi.allowanonymousaccess=“false”/>
现在,在运行我的应用程序时,我遇到以下错误:
{"statusCode":401,"error":{"message":"Access to site is not granted."}}
您正在传递的用户不属于该用户所属的域。ItemWebAPI没有默认域,因此每次进行调用时都需要像“域\用户”这样传递用户
上面所说的一切-像这样尝试:
request.Headers["X-Scitemwebapi-Username"] = @"sitecore\admin";
request.Headers["X-Scitemwebapi-Password"] = "b";
如果我添加更改值'sitecore\admin',我将得到无效字符错误@Vikram很高兴它有帮助!