【问题标题】:Response.Redirect replacement in MVC using Oauth使用 Oauth 在 MVC 中进行 Response.Redirect 替换
【发布时间】:2017-06-15 05:47:15
【问题描述】:

我正在从网络表单转换为 MVC。我的应用程序使用 oAuth (DevDefinedOauth)。

这里是 webforms 应用程序和 MVC 应用程序中使用的一些代码(我已经评论了 webforms response.redirect)。此代码在控制器 (MVC) 或 .CS 文件 (webforms) 内的受保护 void 方法中运行

var session = new OAuthSession(consumerContext, requestUrl, userAuthorizeUrl, accessUrl, callBackUrl);

        // get a request token from the provider 
        IToken requestToken = session.GetRequestToken();

        // generate a user authorize url for this token (which you can use in a redirect from the current site) 
        string authorizationLink = session.GetUserAuthorizationUrlForToken(requestToken, callBackUrl);

        Session["oAuthSession"] = session;
        Session["oAuthToken"] = requestToken;

        //Old Response Redirect from Webforms
        //Response.Redirect(authorizationLink);

        Redirect(authorizationLink);

在 MVC 中,使用常规的 webforms response.redirect(已注释),它似乎工作,它带我到预期的授权页面(雅虎)但是它不太正确,因为一旦我接受了 oauth,页面崩溃时它返回到我自己的页面。

注意 - 如果我首先使用旧的 aspx 页面进行身份验证,然后转到使用 oauth 的控制器/操作,一切正常。 (可能是因为会话正在正确地存储/工作?)

我是 oauth 的新手。我很高兴它正在工作,即使我必须先使用 aspx 网站。有没有使用 MVC 的正确方法?

【问题讨论】:

    标签: c# asp.net asp.net-mvc oauth response.redirect


    【解决方案1】:

    如果您正在寻找在 MVC 和 Web API 中实现 OAuth,请参考下面的 stackoverflow 链接以在现有代码中实现 OAuth

    How to implement oauth2 server in ASP.NET MVC 5 and WEB API 2

    【讨论】:

    • 我觉得该链接解释了如何使用 Oauth 保护您自己的服务器?我正在尝试使用 Oauth 调用 Yahoo 的 API。如前所述,它适用于网络表单,我在使用 MVC 时遇到了困难
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-19
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2017-02-27
    • 2020-02-28
    • 1970-01-01
    相关资源
    最近更新 更多