C# C-ASP.NET MVC中的DotNetOpenAuth-OpenAuth2

C# C-ASP.NET MVC中的DotNetOpenAuth-OpenAuth2,c#,asp.net-mvc,oauth-2.0,C#,Asp.net Mvc,Oauth 2.0,我正在重写一些用ASP.NET MVC编写的旧应用程序。它使用LDAP进行身份验证,但现在有必要将其重写为OAuth2。我已经决定使用DotNetOpenAuth库,因为它看起来是最好的选择,但我仍然停留在auth响应上 目前,我有一个名为AccountController的控制器类,其中包含一些方法,但最重要的是RedirectToIS和PostAuth,这是一个重定向uri: public ActionResult RedirectToIS() { DotNetOpenAut

我正在重写一些用ASP.NET MVC编写的旧应用程序。它使用LDAP进行身份验证,但现在有必要将其重写为OAuth2。我已经决定使用DotNetOpenAuth库,因为它看起来是最好的选择,但我仍然停留在auth响应上

目前,我有一个名为AccountController的控制器类,其中包含一些方法,但最重要的是RedirectToIS和PostAuth,这是一个重定向uri:

public ActionResult RedirectToIS()
{
        DotNetOpenAuth.OAuth2.AuthorizationServerDescription asd = new DotNetOpenAuth.OAuth2.AuthorizationServerDescription();
        String site = ConfigurationManager.AppSettings["oauth:site"];
        asd.AuthorizationEndpoint = new Uri(site + "/oauth/authorize");
        asd.TokenEndpoint = new Uri(site + "/oaut/token");
        asd.ProtocolVersion = DotNetOpenAuth.OAuth2.ProtocolVersion.V20;

        this.oaclient = new DotNetOpenAuth.OAuth2.WebServerClient(asd, ConfigurationManager.AppSettings["oauth:appid"], ConfigurationManager.AppSettings["oauth:secret"]);

        this.oaclient.RequestUserAuthorization(null, new Uri("http://localhost/Account/PostAuth"));

        return View();
}
PostAuth方法是我试图使其正确工作的方法。这是一个页面,OAuth2服务器在成功授权后使用代码和状态GET参数重定向用户。因为我试图利用这个库,而不是重写它,所以我一直停留在这里——我不知道现在该怎么办

正如我在一个示例中看到的,我尝试使用DotNetOpenAuth.OAuth2.iaauthorizationstate st=this.oaclient.ProcessUserAuthorization;在PostAuth,但它不起作用。在这个示例中,作者拥有原始的WebServerClient实例,但我无法使用会话或AccountController数据项来实现它

最后,我的问题是:如何将对象oaclient从RedirectToIS方法传输到PostAuth方法(某种会话)?或者如何开始使用OAuth


PS:我不是C新手,但我从未使用过ASP.NET。

只是一个简单的问题,行new-Urisite+/oaut/token;你是说site+/oautH/token吗?嗨。我当然是说。后来,我发现并修复了代码中的这一错误和其他一些错误,但都没有导致OAuth正常工作。我已经用PHP完成了应用程序的简化版本,在那里它工作正常: