目前我正在開發一個使用DotNetOpenAuth CTP版本的OAuth2授權服務器。我的授權服務器在asp.net MVC3中,它基於庫提供的示例。一切工作正常,直到應用程序達到用戶授權客戶端的地步。PrepareResponse()。AsActionResult()拋出不受支持的異常DotNetOpenAuth CTP
有我的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
我已經從不同的樣品做的唯一的事情是,我使用實體框架的代碼第一個方法,一個我認爲樣品是使用其自動生成實體設計師完成的。
預先感謝您。
你知道了嗎?我遇到了同樣的問題。 – fuzz 2012-04-21 06:04:38