Совместное использование аутентификации с ASP.NET и Silverlight - PullRequest
0 голосов
/ 20 апреля 2011

У меня есть веб-приложение ASP.NET, включающее несколько страниц Silverlight.Во-первых, пользователи проходят аутентификацию, используя общую веб-форму ASP.NET.

Это типичный код для этого:

FormsAuthentication.SetAuthCookie(this.txtUsername.Text, false);
FormsAuthentication.RedirectFromLoginPage(this.txtUsername.Text, false);
Response.Redirect("~/Private/Index.aspx");

Затем пользователь переходит на страницу, которая содержит страницу Silverlight.,С этой страницы Silverlight мне нужно безопасно позвонить в некоторые службы WCF.

Служба содержит следующий код:

[ServiceContract(Namespace = "http://mydomain")]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class ServiceWCF
    {
        public ServiceWCF()
        {
            System.ServiceModel.Web.WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.OK;

            Thread.CurrentPrincipal = HttpContext.Current.User;
        }

        [OperationContract]
        [PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
        public List<Data> GetData()
        {
            // do things
        }
    }

И вот как я вызываю этот метод из клиента silverlight:

MyWCFReference.ServiceWCFClient proxy = new MyWCFReference.ServiceWCFClient();

proxy.GetDataCompleted += new EventHandler<MyWCFReference.GetDataCompletedEventArgs>(proxy_GetDataCompleted);
proxy.GetDataAsync();

Я следовал этой статье, чтобы защититьмои веб-сервисы: http://netpl.blogspot.com/2010_04_01_archive.html

Но когда я запускаю свой код, я получаю сообщение об ошибке: Запрос основного разрешения не выполнен.

Есть идеи о том, как его решить?Thaaankkss !!

1 Ответ

0 голосов
/ 20 апреля 2011

Возможно, вам нужно настроить файл clientaccesspolicy.xml или crossdomain.xml в корне домена, где размещена служба WCF, чтобы разрешить доступ вашему приложению Silverlight.

Подробнее см. MSDN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...