当前位置: 首页 > 知识库问答 >
问题:

OpenID与ASP.NET MVC的连接

齐昊
2023-03-14

题目中的问题相当简单。internet上的所有教程都讨论了OpenID Connect在。NET核心中的实现。我目前的项目是在ASP.NET MVC(不是ASP.NET核心)中开发的,我需要在其中实现OpenID Connect。

我跟踪这个帖子,并试图,但没有运气!

任何关于这方面的帮助/澄清将不胜感激。

共有1个答案

周阳波
2023-03-14

首先,您必须忘记在web.config中配置权限。
然后必须确保为每个控制器分配authorize属性(请使用全局筛选器方法确保)。
引用Microsoft.Owin.Security.OpenIDConnect及其所有依赖项。
使用public void Configuration(IAppBuilder app)方法添加Owin启动类。如下:

using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Microsoft.Owin.Security.OpenIdConnect;
using System.Collections.Generic;
using System.IdentityModel.Tokens.Jwt;
//before v5.0 was: using System.IdentityModel.Tokens;

[assembly: OwinStartup(typeof(MVC_OWIN_Client.Startup))]

namespace MVC_OWIN_Client
{
  public class Startup
  {
    public void Configuration(IAppBuilder app)
    {
        JwtSecurityTokenHandler.DefaultInboundClaimTypeMap = 
            new Dictionary<string, string>();
        // before v5.0 was: JwtSecurityTokenHandler.InboundClaimTypeMap

        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = "Cookies"
        });

        app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
        {
            ClientId = <Your app instance' identifier, must be registered in IdP>,
            Authority = <your IdP>,
            RedirectUri = <base address of your app as registered in IdP>,
            ResponseType = "id_token",
            Scope = "openid email",

            UseTokenLifetime = false,
            SignInAsAuthenticationType = "Cookies",
        });
    }
  }
}

使用“OWIN”、“Katana”和“IdentityServer3”关键字进行进一步搜索。

 类似资料:
  • 我一直在广泛阅读有关OAuth和OpenID Connect的内容,但此问题专门涉及OAuth2资源所有者密码授予(又名OAuth2资源所有者凭据授予,又名OAuth2密码授予) 某些资源(例如Justin Richer的《OAuth2 in Action》一书)说不要使用OAuth2资源所有者密码授予进行身份验证-请参阅书中的第6.1.3节。 以下其他好资源都说我们可以使用OAuth2资源所有者

  • 我试图使用这个库(express-openid-connect)为身份验证后端提供“简单的设置”,但在从调用对象时,我遇到了一个简单的错误: 当然,我得到了这个错误: 没有重载匹配此调用。 重载4中的1“(Path:PathParams,...Handlers:RequestHandler []):Express”,出现以下错误。 类型“(req:OIDRequest,res:express.re

  • 使用OpenAM OpenID连接代理,我创建了一个名为Test-Client的OAuth 2.0/OpenID连接客户端,其作用域为openid。 我的OpenAM实例部署在Tomcat 7上,我调整了/etc/hosts文件,将localhost显示为OpenAM。实例通用域名格式。 使用默认凭据,我可以使用以下方式检索OpenID Connect id令牌: 然后,如果我的承载令牌仍然有效,

  • 我正在尝试弄清楚如何使用WSO2身份服务器为SSO设置我的应用程序。我的用例是我有 2 个应用程序由使用 WSO2IS 的 OAuth/OpenId Connect 保护。如果我已登录到应用程序 1,则启动应用程序 2 应该会自动登录。流程应该是什么? 目前,我已经创建了2个服务提供商,每个应用程序一个。每个服务提供者入站身份验证配置都是使用OAuth/OpenId Connect配置的。我还需要

  • 我不确定在实施过程中应该采取哪种方法,需要一些指导。 我在Yii2框架(PHP)中构建了一个RESTAPI(API.mysite.com),用于访问mysite中的数据。com(数据库)。在mysite上。com我们的用户将能够创建连接的应用程序,该应用程序将提供客户端id机密-授予对其帐户的访问权限(全范围?)。 根据我的研究,下一步似乎是设置一些东西来实际提供传递给api的承载令牌-我一直倾向