PrepareResponse (). AsActionResult () выдает неподдерживаемое исключение DotNetOpenAuth CTP

В настоящее время я разрабатываю сервер авторизации OAuth2, используя версию DotNetOpenAuth CTP. Мой сервер авторизации находится в asp.net MVC3 и основан на образце, предоставленном библиотекой. Все работает нормально, пока приложение не достигнет точки, в которой пользователь авторизует клиента-потребителя.

В моем контроллере OAuth есть действие, которое заботится о процессе авторизации и очень похоже на эквивалентное действие в примере:

[Authorize, HttpPost, ValidateAntiForgeryToken]
    public ActionResult AuthorizeResponse(bool isApproved)
    {
        var pendingRequest = this.authorizationServer.ReadAuthorizationRequest();

        if (pendingRequest == null)
        {
            throw new HttpException((int)HttpStatusCode.BadRequest, "Missing authorization request.");
        }

        IDirectedProtocolMessage response;
        if (isApproved)
        {
            var client = MvcApplication.DataContext.Clients.First(c => c.ClientIdentifier == pendingRequest.ClientIdentifier);
            client.ClientAuthorizations.Add(
                new ClientAuthorization
                {
                    Scope = OAuthUtilities.JoinScopes(pendingRequest.Scope),
                    User = MvcApplication.LoggedInUser,
                    CreatedOn = DateTime.UtcNow,
                });
            MvcApplication.DataContext.SaveChanges();
            response = this.authorizationServer.PrepareApproveAuthorizationRequest(pendingRequest, User.Identity.Name);
        }
        else
        {
            response = this.authorizationServer.PrepareRejectAuthorizationRequest(pendingRequest);
        }

        return this.authorizationServer.Channel.PrepareResponse(response).AsActionResult();
    }

Каждый раз, когда программа достигает этой строки:

this.authorizationServer.Channel.PrepareResponse(response).AsActionResult();

Система выдает исключение, которое я безуспешно исследовали. Исключение составляют следующие: В LINQ to Entities поддерживаются только конструкторы и инициализаторы без параметров.

Трассировка стека: http://pastebin.com/TibCax2t

Единственное, что я сделал не так, как в примере, - это то, что я использовал метод первого кода entity framework, и я думаю, что образец был создан с помощью конструктора, который автоматически сгенерировал объекты.

Заранее благодарю.

5
задан Daniel 13 December 2011 в 22:33
поделиться