GetExternalLoginInfoAsync null 与ExternalLoginCallback 中的OWIN 除非已经登录到google

2024-02-06

我一直在尝试使用 Google 帐户在 MVC5 应用程序中使用 OWIN 实现外部登录。

如果我已经登录谷歌,点击我的应用程序中的谷歌按钮就可以了,在允许我访问登录信息后,它会将我带到我的注册页面。

如果我在单击我的应用程序 google 按钮时尚未登录 google,则会提示我按预期使用 Google 登录,但回调接收器似乎看不到我已登录,因为登录信息在此始终为空回调中的场景如下...

    [AllowAnonymous]
    public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
    {
        var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();

         if (loginInfo == null)
        {
            return RedirectToAction("Login");
        }

        // Code omitted for brevity.
        }
    }

有人有解决方法或解释吗?这几乎就像在登录 google 后发出请求之前,OWIN 无法使用外部 cookie。


经过几天的调查,我终于找到了答案。问题似乎是登录谷歌后,它重定向回该网站,并且没有登录谷歌的权限,因此被重定向回登录页面。如果已经登录谷歌,不知道为什么这会起作用。找到这篇文章后我发现了这一点......

http://blog.technovert.com/2014/01/google-openid-integration-issues-asp-net-identity/ http://blog.technovert.com/2014/01/google-openid-integration-issues-asp-net-identity/

我将以下内容添加到我的配置文件中。

<location path="signin-google">
 <system.web>
   <authorization>
     <allow users="*" />
   </authorization>
 </system.web>
</location>

现在它可以工作了...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GetExternalLoginInfoAsync null 与ExternalLoginCallback 中的OWIN 除非已经登录到google 的相关文章

  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 将 MVC 站点部署到 IIS 会导致找不到默认共享部分视图

    我有一个可以在本地 IIS 上完美运行的网站 我的所有页面都使用默认的共享部分视图 这称为预期 Layout cshtml 该视图放置在我的共享文件夹中 这可以在这里看到 正如我所期望的那样 这非常有效 不过 我现在发布了我的网站 然后 我
  • 如何填充 ToolStripComboBox?

    我发现它很难将数据绑定到ToolStripComboBox 好像没有这个ValueMember and DisplayMember特性 怎么绑定呢 访问toolstripcombobox中包装的组合框并访问其ValueMember Disp
  • 从同一个类中的另一个构造函数调用构造函数

    我有一个带有两个构造函数的类 C 这是代码片段 public class FooBar public FooBar string s constructor 1 some functionality public FooBar int i
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • C# 数据表更新多行

    我如何使用数据表进行多次更新 我找到了这个更新 1 行 http support microsoft com kb 307587 my code public void ExportCSV string SQLSyntax string L
  • unordered_map 中字符串的 C++ 哈希函数

    看起来 C 标准库中没有字符串的哈希函数 这是真的 在任何 c 编译器上使用字符串作为 unordered map 中的键的工作示例是什么 C STL提供模板专业化 http en cppreference com w cpp string
  • 使用 GCP 的数据存储区时如何区分代码是在模拟器中运行还是在 GKE 中运行

    按照中给出的说明进行操作后 我不确定是否遗漏了任何内容https cloud google com datastore docs tools datastore emulator https cloud google com datasto
  • 使用 LINQ to SQL 时避免连接超时的最佳实践

    我需要知道在 net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳实践 特别是在返回时IQueryable
  • 在Linux中,找不到框架“.NETFramework,Version=v4.5”的参考程序集

    我已经设置了 Visual studio 来在我的 Ubuntu 机器上编译 C 代码 我将工作区 我的代码加载到 VS 我可以看到以下错误 The reference assemblies for framework NETFramewo
  • 告诉 Nancy 将枚举序列化为字符串

    Nancy 默认情况下在生成 JSON 响应时将枚举序列化为整数 我需要将枚举序列化为字符串 有一种方法可以通过创建来自定义 Nancy 的 JSON 序列化JavaScript 原始转换器 https github com NancyFx
  • SQL服务器超时

    我的应用程序是在经典 asp 上开发的 但也使用 asp net 因为我正在将应用程序迁移到 Net 上 它使用 SQL Server 作为数据库并托管在 Windows Server 2003 上 现在的问题是应用程序在很长一段时间内继续
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • C++ 中的双精度型数字

    尽管内部表示有 17 位 但 IEE754 64 位 浮点应该正确表示 15 位有效数字 有没有办法强制第 16 位和第 17 位为零 Ref http msdn microsoft com en us library system dou
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析

随机推荐

  • 在 Cocoa 应用程序中处理 Cmd-Q(以及以编程方式菜单项“退出应用程序”)

    我创建了一个只有一个窗口的游戏应用程序 应用程序的创建无需 xib 文件的帮助 如下所述 如何创建 GUI 并以编程方式对 Cocoa 事件做出反应 https stackoverflow com questions 656129 how
  • C# WPF - 如何修改 ToolBar.ButtonStyleKey 样式

    我需要在鼠标悬停时显示工具栏按钮边框 否则隐藏它 我尝试执行以下操作
  • 本土化。扩展 ASP.NET Resx 资源提供程序

    对于我的网站 我有一个用于本地化目的的自定义资源提供程序 本地化字符串存储在数据库中 它工作得很好 但我希望它能够与默认的 Resx 资源提供程序一起使用 在 resx 资源中查找本地化字符串 如果不存在 则从数据库中提取它 但看起来一旦我
  • Grpc Client 抛出 Grpc.Core.RpcException (响应协议降级为 HTTP/1.1。)

    我度过了最后三天 阅读焦点 尝试不同版本的 VS 和 NET 检查 Stackoverflow 中的问题 github 中的问题 关于我的 Grpc 客户端 服务器启动正常但客户端无法工作 我尝试过Grpcurl 工作正常 but C 客户
  • Javascript 检测关闭加载了另一个域的弹出窗口

    我正在打开一个弹出窗口并将 onbeforeunload 事件附加到它 如下所示 win window open http www google com width 300px height 300px win onbeforeunload
  • 在书写模式下设置垂直中间

    我有一个带有一些文本的 div 和writing mode vertical rl 现在我希望这段文字位于中间 但是vertical align middle 即使设置也不起作用line height a background color
  • 使用 Outlook REST API 时为什么日历 ID 会发生变化?

    我们构建了一个使用 Outlook REST API V1 和 V2 版本的应用程序 我们偶尔会看到用户日历更改的日历 ID 具体来说 我们使用 GET 获取日历https outlook office com api v2 0 me ca
  • 指针、数组、printf

    我正在尝试使用一个数组来保存调查的输入 该调查的每一侧都具有相同的正值 但有一个指针指向数组的中心 因此可以使用负指针值来访问该数组 例如 数组将保存从 0 到 30 的值 指针将指向 15 系统将提示用户输入 15 到 15 之间的值 其
  • MacOSX 10.9.5 上的 Sed 错误“\1 未在 RE 中定义”

    我正在尝试使用 bash 为我的 MP3 文件名 非常重要 构建一个通用格式化程序 其中很大一部分是能够使用正则表达式变量移动文本 例如 我试图删除 ft Kevin Parker 周围的括号 oldfilename Mark Ronson
  • Sidekiq:是否可以“暂停”队列?

    是否可以 暂停 sidekiq 队列 我正在运行下载作业 但我必须让我的 Mac 运行 休眠 所以我想告诉 sidekiq 暂停一下 有没有一种简单的方法可以做到这一点 您无法中途停止作业 如果您想停止处理队列中的新作业 这是 Sideki
  • Android中的可分包和继承

    我得到了一个适用于不涉及继承的单个类的 Parcelable 实现 在继承方面 我无法找出实现接口的最佳方法 假设我得到了这个 public abstract class A private int a protected A int a
  • 如何使用java获取BIOS信息?

    请告诉我是否可以使用 java 程序获取 BIOS 设置信息 我使用 Windows 7 作为操作系统 这取决于您要阅读的信息 Java 无法读取 BIOS 但 java 可以查询 WMI google for jWMI 这可能会获取您需要
  • 在 Excel 中拆分和分组值

    Hi I have a column of values which has different suffix after a dot i need it to group it based on the value after dot E
  • 类型错误:无法重新定义属性:tap

    每当我尝试运行时我都会收到此错误npm run dev webpack cli TypeError Cannot redefine property tap at Function defineProperty
  • 数组声明中的 PHP 扩展语法

    PHP 支持扩展语法可变参数函数 http php net manual en functions arguments php functions variable arg list 在 JavaScript 中 您可以使用扩展语法来执行以
  • 丑数 - dp 的数学直觉

    我正在尝试找到 丑陋 的数字 这是一系列唯一质因数为 2 3 5 的数字 我找到了动态规划解决方案 并想了解它是如何工作的以及逻辑背后的数学直觉是什么 该算法是为 2 3 和 5 的倍数保留三个不同的计数器变量 让我们假设 i2 i3 和
  • 将峰度应用于 python 中的分布

    我有一个数据集 其格式为 频率 方向 归一化功率谱密度 扩展 偏度 峰度 我可以使用顶部答案中的代码可视化特定记录的分布scipy 中的偏斜正态分布 https stackoverflow com a 5885349 1135883但我不确
  • YAML:具有空值的字典

    如何在 YAML 中编写一个字典 映射 其中一个键将空字符串作为其值 key 被解析为 null YAML 1 1 map str key null null 正确答案是 key
  • 警告:尝试多次加载角度...因为 jQuery...为什么?

    我试图了解这里发生了什么事 该警告是不言自明的 我意识到在应用程序中 使用下面的代码和结构 它运行 ng view 两次 测试 将在控制台中记录两次 所以角度当然会加载两次 但为什么 我已经阅读了我能找到的所有关于它的文章 它似乎归结为 j
  • GetExternalLoginInfoAsync null 与ExternalLoginCallback 中的OWIN 除非已经登录到google

    我一直在尝试使用 Google 帐户在 MVC5 应用程序中使用 OWIN 实现外部登录 如果我已经登录谷歌 点击我的应用程序中的谷歌按钮就可以了 在允许我访问登录信息后 它会将我带到我的注册页面 如果我在单击我的应用程序 google 按