小编Bra*_*kin的帖子

使用MVC5中的OWIN Oauth进行的Google身份验证不会影响ExternalLoginCallback功能

我目前正在升级我的Google登录流程,以便在他们的OpenID登录方法之前使用OAuth.

到目前为止,我已经确定的步骤是我已将Microsoft.Owin.Security.Google软件包升级到版本2.1.0,因为此版本包含在UseGoogleAuthentication方法中包含选项的功能.

我试图在链接中使用Alex Wheat的解决方案: 从外部身份验证提供程序获取MVC5框架OAuth/OWin身份提供者的ExtraData

Startup.Auth.cs中的代码(也包括Facebook身份验证)来自于:

    var facebookAuthenticationOptions = new FacebookAuthenticationOptions()
        {
            AppId = "MYAPPID",
            AppSecret = "MYSECRET"
        };
        facebookAuthenticationOptions.Scope.Add("email");
        app.UseFacebookAuthentication(facebookAuthenticationOptions);

        app.UseGoogleAuthentication();
Run Code Online (Sandbox Code Playgroud)

对此:

var facebookAuthenticationOptions = new FacebookAuthenticationOptions()
        {
            AppId = "MYAPPID",
            AppSecret = "MYSECRET"
        };
        facebookAuthenticationOptions.Scope.Add("email");
        app.UseFacebookAuthentication(facebookAuthenticationOptions);


        var googleOAuth2AuthenticationOptions = new GoogleOAuth2AuthenticationOptions
        {
            ClientId = "MYCLIENTID",
            ClientSecret = "MYSECRET",
            CallbackPath = new PathString("/en/Account/ExternalLoginCallback"),
            Provider = new GoogleOAuth2AuthenticationProvider()
            {

            }
        };

        app.UseGoogleAuthentication(googleOAuth2AuthenticationOptions);
Run Code Online (Sandbox Code Playgroud)

在我向Google身份验证添加选项后,我的应用不允许为Google或Facebook调用ExternalLoginCallback操作(不更改Facebook代码,但问题仍会影响它).

在前端,单击外部登录按钮后,页面将我重定向到下面的链接并返回一个空白屏幕

https ....../en/Account/ExternalLoginCallback #__ = _(在=符号之前实际上只有一个下划线,如果我在地址栏上显示它,则SO语法将其删除).

对于Facebook和

HTTPS ....../EN /帐号/ ExternalLoginCallback

对于谷歌.它没有像往常那样点击下面的控制器方法(我试图在这个函数中放置调试断点,并且当有google身份验证选项时它永远不会停止.

    // GET: /Account/ExternalLoginCallback
    [AllowAnonymous]
    public …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc oauth google-authentication owin asp.net-identity

24
推荐指数
3
解决办法
3万
查看次数

使用工具时 URL 被禁止 403,但在浏览器中正常

我有一些图像需要执行 HttpRequestMethod.HEAD 才能找出图像的一些详细信息。

当我在浏览器上访问图像网址时,它加载时没有问题。

当我尝试通过我的代码或在线工具获取标头信息时,它失败了

示例 URL 为http://www.adorama.com/images/large/CHHB74P.JPG

如前所述,我已使用在线工具Hurl.It来尝试获取 Head 请求,但我收到了与代码中相同的 403 Forbidden 消息。我尝试向 Head 请求添加许多不同的标头(User-Agent、Accept、Accept-Encoding、Accept-Language、Cache-Control、Connection、Host、Pragma、Upgrade-Insecure-Requests),但这些似乎都不起作用。

它也无法通过 Hurl.it 执行正常的 GET 请求。同样的 403 错误。

如果相关的话,我的代码是 ac# Web 服务,并且正在 AWS 云上运行(以防万一 adorama 服务器有一些我不知道的针对 AWS 的东西)。为了测试这一点,我还启动了一个 ec2(linux 盒子)并运行curl,它也返回了 403 错误。在我的个人计算机上本地运行curl会返回二进制图像,这可能只是图像数据。

只是为了消除明显的想法,我的代码可以在许多其他网站上成功运行,只是这个网站存在问题

知道我需要什么才能下载图像标题而不收到 403 吗?

curl amazon-ec2 amazon-web-services http-headers http-status-code-403

5
推荐指数
1
解决办法
1万
查看次数