как установить учетные данные wcf, когда Telerik radgrid использует службу wcf?
Вопрос
У меня есть служба wcf, для которой требуются учетные данные клиента, поэтому я могу установить это с помощью такого кода:
wcf.ClientCredentials.UserName.UserName = "user";
wcf.ClientCredentials.UserName.Password = "password";
Я следовал этому руководству о том, как создать radgrid Telerik для использования службы wcf:http://blogs.telerik.com/blogs/posts/09-02-14/openaccess_wcf_and_a_radgrid_oh_my.aspx
Но у него нет никакой информации о том, как установить учетные данные.Если кто-то может помочь, буду очень признателен!!!
Решение
Хорошо, если вам нужно получить данные с другого сервера, похоже, вам нужно создать свой собственный серверный класс в качестве ObjectDataSource на сервере, который будет клиентом для вашей службы WCF, поскольку междоменные ограничения браузера предотвратят использование RadGrid. от выполнения клиентских запросов к обоим серверам.
Ваш ObjectDataSource выполняет работу по созданию запросов WCF.
Вот документация Telerik RadGrid о том, как использовать ObjectDataSource:http://demos.telerik.com/aspnet-ajax/controls/examples/integration/aspajaxgridapplication/defaultcs.aspx?product=grid
... и вот документы Microsoft по ObjectDataSource:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.objectdatasource.aspx
Другие советы
Вы хотите установить учетные данные на стороне клиента, т.е.с Javascript, это правильно, кампо?Если это так, я не знаю, существует ли или должен ли быть способ установить учетные данные, потому что было бы небезопасно включать их в код на стороне клиента.
Поскольку веб-служба должна находиться в том же домене, что и ваша веб-страница (из-за междоменных ограничений), если вы можете использовать обычные сеансы 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>