2010-01-08 105 views
0

我有需要的客户端证书的WCF服务,所以我可以通过代码设置此类似这样的:如何在Telerik radgrid使用wcf服务时设置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

marc_s,因为这两条线都为微软WCF客户端,不是RadGrid。 你会如何在RadGrid中使用这两行代码? – glennkentwell 2010-01-08 11:32:10

回答

1

OK,如果你需要从另一台服务器获取数据,它看起来像你需要创建自己的服务器端类作为一个ObjectDataSource在服务器上为您的WCF服务的客户端,因为浏览器的跨域限制将阻止RadGrid制作客户端请求到两台服务器。

您的ObjectDataSource完成了制作WCF请求的工作。

这里的Telerik的radgrid控件的文档了解如何使用一个ObjectDataSource: 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

+0

ahhh,优秀!非常感谢!!! – campo 2010-01-08 11:50:25

0

你想在客户端设置凭证,即。用Javascript,这是正确的坎波?如果这是正确的,我不知道是否有或应该设置证书的方式,因为将它们包含在客户端代码中是不安全的。

由于Web服务必须与您的网页位于同一个域(由于跨域限制),如果您可以使用正常的ASP.NET会话,则用户已经通过身份验证,因为它们已经过身份验证到您的ASP.NET应用程序。

本博客文章详细介绍了如何使“ASP.NET兼容模式” WCF,这给你的WCF服务访问会话状态和其他ASP.NET的东西: http://blogs.msdn.com/wenlong/archive/2006/01/23/516041.aspx

你在你的WCF应用程序的设置此配置文件:

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
</system.serviceModel> 
+0

谢谢lennyK&marc_s,对不起,我应该澄清,我的意思是我需要从另一台服务器获取数据,承载wcf,并且我的asp.net托管在另一台服务器上。 – campo 2010-01-08 11:43:11