【问题标题】:ASP.NET web forms and external authentication serviceASP.NET Web 表单和外部身份验证服务
【发布时间】:2020-05-06 04:44:48
【问题描述】:

我有一个 ASP.NET 网络表单(不是 MVC!)应用程序。我使用了内置的内部用户认证机制,即使用web.config文件:

<authentication mode="Forms">
    <forms loginUrl="~/Logon.aspx" name=".ASPXFORMSAUTH" timeout="180" slidingExpiration="true">
    </forms>
</authentication>
<authorization>
    <deny users="?" />
</authorization>

Logon.aspx页面询问用户的登录名和密码,然后使用FormsAuthentication.RedirectFromLoginPage()方法登录和FormsAuthentication.SignOut();注销。

现在我需要迁移到外部身份验证服务器。这个服务器使用了像OAUTH这样的软件,但不完全是(它是自己开发的)。因此,我无法理解如何将第三方身份验证服务器实施到 Web 表单的方案。

我应该将第三方身份验证服务器重定向 url 放置到我的web.config 吗?或者我应该做两个重定向,首先到Logon.aspx,然后到外部身份验证链接?如何进行注销程序?不幸的是,我只有内置 Web 表单身份验证方面的经验,甚至无法想象如何使用外部服务!

【问题讨论】:

    标签: c# asp.net authentication


    【解决方案1】:

    根据Grant Type,您可以使用不同的流程:https://oauth.net/2/grant-types/

    下面列出了最常见的 OAuth 授权类型。

    授权码 客户凭证 设备代码 刷新令牌

    对于 Web 应用程序,授权码最有可能是要走的路:https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type

    应用程序打开浏览器将用户发送到 OAuth 服务器 用户看到授权提示并批准应用程序的请求 使用查询字符串中的授权代码将用户重定向回应用程序 应用程序将授权码交换为访问令牌

    基本上,您根本不会使用您的表单。您将重定向到 oauth 服务器和从 oauth 服务器重定向。

    【讨论】:

      猜你喜欢
      • 2011-08-03
      • 2016-06-10
      • 1970-01-01
      • 2017-09-28
      • 2011-02-23
      • 2015-01-09
      • 1970-01-01
      • 1970-01-01
      • 2014-01-30
      相关资源
      最近更新 更多