DotNetOpenAuth:如何实现一个简单的 OpenId 提供程序?

2023-12-24

每个 OpenId 提供商都有一个提供商 Url(例如 Google:https://www.google.com/accounts/o8/id https://www.google.com/accounts/o8/id)

Using OpenIdRelyingParty.CreateRequest我成功地将用户重定向到 Google 提供程序 URL 并接收提供程序回调。一切都很好。

现在我正在尝试实现我自己的简单 OpenId 提供程序(我想在我的示例中充当 Google 的角色)。 DotNetOpenAuth 有一个名为 OpenIdProviderWebForms 的提供程序演示。在过去的 4 或 5 个小时里,我一直在尝试使用我在 Google 上成功连接的相同演示来连接它。第一:我不清楚我应该调用什么 URL。我尝试了所有 URL(server.aspx、provider.ashx...),它们都触发了异常“未找到 OpenID 端点”。所有的配置看起来都很好。

如何实现一个简单的 OpenId 提供程序?我应该在其中调用什么URLOpenRelyingParty.CreateRequest ?


首先让我们建立一些术语:

The User-supplied identifier是用户实际输入的字符串(或通过单击 RP 上的预定义按钮触发),触发 OpenID 发现发生。它没有标准化,并且永远不应该用来表示数据库中的用户,因为它不安全或不唯一,但它是一个必要的起点。对该标识符的发现会产生claimed identifier or an OP Identifier。示例:yahoo.com、myopenid.com 和rewarnott.myopenid.com

The Claimed Identifier是用户“控制”或用作其身份的 OpenID 标识符。它可能或可能not是一个 URL(也可能是一个 XRI)。来自 OP 的肯定断言将始终是声明的标识符(即使发现是从 OP 标识符开始的)。例子:https://andrewarnott.myopenid.com/ https://andrewarnott.myopenid.com/

The OP Identifier,或“OpenID 提供者标识符”是 RP 可以执行发现以开始identifier selectRP 还不知道用户声明的标识符是什么的流程。例子:https://me.yahoo.com/ https://me.yahoo.com/, http://www.myopenid.com/ http://www.myopenid.com/ and https://www.google.com/accounts/o8/id https://www.google.com/accounts/o8/id

The OP Endpoint是 RP 将用户重定向到的实际 URL,以便对用户进行身份验证,用于建立共享关联或对使用 OP 私有关联的断言执行直接验证。例子:http://localhost/server.aspx http://localhost/server.aspx, http://localhost/provider.ashx http://localhost/provider.ashx, https://www.google.com/accounts/o8/ud https://www.google.com/accounts/o8/ud(注意 ud 结尾而不是 id)

因此,有了这些背景,您的OpenIdRelyingParty.CreateRequest调用应该接收用户提供的标识符,该标识符也可以是声明的标识符或 OP 标识符。它应该not是 OP 端点。例如,您可以传入:

openIdRelyingParty.CreateRequest("http://localhost/sampleop/")

or

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

DotNetOpenAuth:如何实现一个简单的 OpenId 提供程序? 的相关文章

随机推荐

  • 在 Python 中创建流类

    我有一个类需要一个包含 XML 文件的流 我不一定需要文件流 我可能想使用其他源 如数据库 套接字等 我需要从什么类继承IO模块 http docs python org library io html为了从其他来源提供流接口 安德烈给出的
  • 如何拍摄黑白视频

    我是 iPhone 应用程序开发新手 我开发了一款 iPhone 应用程序 在此应用程序中 我想开发使用 iPhone 相机录制黑白视频 请帮助我如何开发这个 然后还给出一些示例代码网址 提前致谢 您想要使用 kCVPixelFormatT
  • Python 分组依据

    假设我有一组数据对 其中index 0是值并且index 1是类型 input 11013331 KAT 9085267 NOT 5238761 ETH 5349618 ETH 11788544 NOT 962142 ETH 7795297
  • 如何在 Node.js 中检索客户端和服务器 IP 地址和端口号

    我尝试进行大量搜索以找到一种方法来了解客户端和服务器的 IP 地址和端口号 到目前为止我发现 客户端IP 可以知道req ip 客户端端口 我搜索了很多 但找不到任何方法来找到这个客户端临时端口 检查完后req and res对象 我发现有
  • 使用 joda 时间的两个日期之间的秒数差异?

    假设有两个日期 A 开始时间 和 B 结束时间 A 和 B 可以是同一天甚至不同天的时间 我的任务是在几秒钟内显示差异 我正在使用的日期格式是 Date Format yyyy MM dd T HH mm ss SSSZ 例如 start
  • 找不到System.Xaml?

    我有一个 VS2010 项目需要引用 System Xaml 我转到 添加引用 搜索 NET 引用 但它不在那里 我也仔细检查了 GAC 但没有这样的运气 我就是想不通为什么它不在机器上 该计算机安装了 NET 3 5 SP1 和 NET
  • UILabel 的字体在视图重新出现之前不会调整

    使用故事板 我创建了一个带有带有标签的单元格的表格视图 我希望能够轻松地将相同的字体分配给应用程序中的所有标签 因此我在辅助文件 smallFont mediumFont 和 largeFont 中创建了一些字体tableView tabl
  • 访问 ASP.NET 中没有值的查询字符串参数

    我正在尝试设置一个具有两种行为的页面 我通过 URL 将它们分开 一种行为通过 some controller some action 另一个是通过 some controller some action customize 不过 当我访问
  • 将派生类转换为基类

    我正在尝试刷新我的记忆 但无法通过 Google 找到答案 public class BaseClass public virtual void DoSomething Trace Write base class public class
  • Docker:连接期间出错

    每当我尝试使用 RSelenium 包时 我都会收到上述错误 shell docker run d p 4445 4444 selenium standalone chrome docker error during connect Pos
  • 将 DAO 注入构造函数是否被认为是不好的做法?如果是这样,为什么?

    我有一个 DAL 数据访问层 但这个问题也与 DAO 相关 它与 android 中的静态 Web 服务进行通信 除了我不想包含大量静态库之外 它的相关性较小 交互并不那么复杂 我有一个对象 它包装一个列表 该列表由来自该数据访问层的信息填
  • 为什么我不能通过 import scipy as sp 来使用 sp.signal? [复制]

    这个问题在这里已经有答案了 我想用scipy signal lti and scipy signal impulse函数来计算传递函数 我导入scipy模块按以下方式 import scipy as sp import numpy as n
  • 使用 pytest-asyncio 测试 FastAPI 路由时出现“RuntimeError:事件循环已关闭”

    我收到错误 运行时错误 事件循环已关闭 每次我尝试在测试中进行多个异步调用时 我已经尝试使用其他 Stack Overflow 帖子中的所有其他建议来重写event loop固定装置但没有任何作用 我想知道我错过了什么 运行测试命令 pyt
  • 在 odoo 10 中向状态栏添加颜色

    需要在odoo10中的状态栏添加颜色 哪些可用的openerp版本 例如
  • 一种数据结构,其中键为单词簇,值为单个单词或字符串

    我想创建一个能够将一组或一组单词映射到单个单词或字符串的数据结构 它可以被认为是 python 中字典的反向操作 您可以使用常规字典 targetword good wordmap best targetword positive targ
  • PHP MYSQL 博客存档菜单(按年和月)

    我正在寻找一种有效的方法将所有博客文章整理到以下格式的菜单中 2012 八月 6 九月 4 十月 2 Month 代表月份 显然 括号内的值代表该月的帖子数 单击后 将搜索该月 该年的所有帖子 我需要它是动态的 当该月创建帖子时自动选取 1
  • useSWR 不适用于异步获取器功能

    我正在使用 SWR 获取数据来填充表 我正在使用以下代码 const data items error useSWR fetchAllItems name fetchAllItems fetcher 函数看起来像这样 async funct
  • graphql查询SQL父子关系

    我有一个 postgres 表 它表示具有父子表的层次结构 表 类别 id name parentId 1 CatA null 2 CatB null 3 CatC 1 4 CatD 1 5 CatE 3 期望的结果 categories
  • 如何使用字典从嵌套 json 创建 pandas 数据框

    我正在尝试创建一个 pandas 数据框形式的 json 文件 我已经看到了这个问题的多种解决方案 它们使用内置函数 from dict json normalize 但我无法将其应用到我的代码中 以下是我的数据在 json 文件中的结构
  • DotNetOpenAuth:如何实现一个简单的 OpenId 提供程序?

    每个 OpenId 提供商都有一个提供商 Url 例如 Google https www google com accounts o8 id https www google com accounts o8 id Using OpenIdR