gpt4 book ai didi

asp.net-mvc - DotNetOpenAuth WebConsumer 未重定向到 ASP.NET MVC 应用程序中的 OAuth 提供程序

转载 作者:行者123 更新时间:2023-12-04 06:28:05 24 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序,我试图在其中将 DotNetOpenAuth 用于我的 Google OAuth。我正在使用示例中的 GoogleConsumer 类,并尝试执行身份验证的第一步。下面的代码与提供的 WebForms 应用程序中的代码基本相同,只是在 MVC Controller 中:

public string Authenticate()
{
GoogleTokenManager tokenManager = new GoogleTokenManager(ConsumerKey, ConsumerSecret);
WebConsumer webConsumer = new WebConsumer(GoogleConsumer.ServiceDescription, tokenManager);
GoogleConsumer.RequestAuthorization(webConsumer, GoogleConsumer.Applications.Gmail);
return "";
}

当我向 Controller 发出 AJAX 请求时,代码会执行,但我从未重定向到 Google 页面进行身份验证。

最佳答案

底层请求正在返回一个我没有正确处理的 302 重定向响应。我发现更有帮助的是在我的 Controller 中指定另一个操作的回调 URL,如下所示:

public ActionResult Authenticate()
{
string callbackUrl = Request.Url.ToString().Replace("Authenticate", "OtherAction");
Uri callback = new Uri(callbackUrl);

WebConsumer webConsumer = new WebConsumer(GoogleConsumer.ServiceDescription, TokenManager);
Dictionary<string, string> extraParameters = new Dictionary<string, string>();
extraParameters.Add("scope", GoogleConsumer.GetScopeUri(GoogleConsumer.Applications.Gmail));

UserAuthorizationRequest request = webConsumer.PrepareRequestUserAuthorization(callback, extraParameters, null);
return webConsumer.Channel.PrepareResponse(request).AsActionResult();
}

public ActionResult OtherAction()
{
// oauth_verifier, oauth_token are now in the RequestQueryString
}

关于asp.net-mvc - DotNetOpenAuth WebConsumer 未重定向到 ASP.NET MVC 应用程序中的 OAuth 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com