我有一个需要客户端凭据的wcf服务,所以我可以通过以下代码设置:
wcf.ClientCredentials.UserName.UserName = "user";
wcf.ClientCredentials.UserName.Password = "password";
我按照本教程介绍了如何创建telerik radgrid来使用wcf服务: http://blogs.telerik.com/blogs/posts/09-02-14/openaccess_wcf_and_a_radgrid_oh_my.aspx
但它没有关于如何设置凭据的任何信息。如果有人可以提供帮助,我会非常感激!!!
答案 0 :(得分:1)
好的,如果你需要从另一台服务器获取数据,看起来你需要创建自己的服务器端类作为服务器上的ObjectDataSource作为你的WCF服务的客户端,因为浏览器的跨域限制将会防止RadGrid向两台服务器发出客户端请求。
您的ObjectDataSource完成了发出WCF请求的工作。
这是关于如何使用ObjectDataSource的Telerik RadGrid文档: http://demos.telerik.com/aspnet-ajax/controls/examples/integration/aspajaxgridapplication/defaultcs.aspx?product=grid
...这里是微软关于ObjectDataSource的文档: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.aspx
答案 1 :(得分:0)
您想在客户端设置凭据,即。用Javascript,是对的campo?如果这是正确的,我不知道是否存在或应该有一种设置凭证的方法,因为将它们包含在客户端代码中是不安全的。
由于Web服务必须与您的网页位于同一个域(因为跨域限制),如果您可以使用正常的ASP.NET会话,则用户已经过身份验证,因为它们已经过身份验证你的ASP.NET应用程序。
此博客文章详细介绍了如何为WCF启用“ASP.NET兼容模式”,这使您的WCF服务可以访问会话状态和其他ASP.NET内容: http://blogs.msdn.com/wenlong/archive/2006/01/23/516041.aspx
您可以在WCF应用程序的配置文件中设置它:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>