如何从使用 JS 制作的 Windows 8 Native 应用程序将当前 Windows 凭据传递给 WCF REST 服务?
Posted
技术标签:
【中文标题】如何从使用 JS 制作的 Windows 8 Native 应用程序将当前 Windows 凭据传递给 WCF REST 服务?【英文标题】:How to pass the current windows credential to a WCF REST service from a Windows 8 Native app made using JS? 【发布时间】:2012-02-14 21:51:21 【问题描述】:我正在尝试从我的 Windows 8 应用程序调用 WCF REST 服务,但总是提示我输入凭据。我在包清单中激活了默认 Windows 凭据,并且正在寻找相当于
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
使用 javascript 时。
该服务设置为使用 Windows 身份验证,并且在从 IE9 调用时可以正常工作。
【问题讨论】:
您找到解决方案了吗?我有同样的问题.. 嗨,KANAX,我当时从未真正找到解决方案。如果我没记错的话,我不得不停止使用 WinJS 并转向 C#,那里从来没有问题。抱歉,我无法提供更多帮助,我不记得细节了。 好的,谢谢您的回复!我仍在为我自己寻找解决方案 【参考方案1】:您可以使用Winjs.xhr 进行通话。确保在 appxmanifest 中设置了defaultWindowsCredentials(如您所说)。
示例用法:
WinJS.xhr(
url: requestUrl, user: 'username', pass: 'password, headers: accept: 'application/json'
).then(
function (req)
var data = JSON.parse(req.response);
document.getElementById('foo').innerhtml = data.d[0].;
// Now call the user-supplied callback function when this data is ready
c(
results: data.d,
number: data.d.length
);
, //Error func
function (req)
e(req);
, //progress func
function (req)
p(req);
);
您还可以使用 c# 项目来处理 WCF 通信并让 Javascript 项目调用它的方法。
其他认证路径:
Windows.Security.Authentication.Live“使 Metro 风格的应用程序能够使用 Windows Live 来使用其 Windows Live ID 对用户进行身份验证”
还可以查看Metro style app for banking: code walkthrough 的多个身份验证方案和Web Authentication。
Live SDK Developer Preview 还将使您能够“利用在 Windows Developer Preview 中使用 Windows Live ID 的单点登录方案”。
【讨论】:
您好,非常感谢!无论如何我可以让应用程序使用当前的安全上下文而不是提示用户输入凭据? C# 代码适用于此,但我正在寻找 WinJS 等价物。以上是关于如何从使用 JS 制作的 Windows 8 Native 应用程序将当前 Windows 凭据传递给 WCF REST 服务?的主要内容,如果未能解决你的问题,请参考以下文章
适用于 Windows 商店 8.1 的 Windows Azure node.js 推送通知 - 如何使用“createRawTemplateRegistration”模板?
can Microsoft X NA如non Windows 10?
如何将 C# 中的 Image 对象制作到 Windows Phone 8.1
如何使用 CLI 在 Windows 操作系统中将 node.js 6.x 更新为 8.x