.net 如何将OAuth2身份验证令牌从MVC5 wepapplication传递到WebAPI2应用程序
我在使用OAuth2、WebAPI2和接口设置项目时遇到了一些问题 场景: 我正在建立一个基本上是WebApi2的项目。此WebApi为我的接口提供反业务逻辑和数据 目前,该界面是一个MVC5网络应用程序,但在未来,我希望能够将其他一些“应用程序”连接到它。这就是COR的用武之地:接口和WebAPI可以位于不同的服务器上 我想使用OAuth2,这样用户可以通过谷歌和其他提供商注册 问题: 它涉及注册部分: 首先,我尝试注册接口MVC应用程序,并尝试将身份验证令牌传递给WebAPI。这似乎不是实现这一点的正确方法 现在我正在考虑在WebApi项目中公开一个注册接口,这样,如果用户在MVC webapplication上注册,就会被重定向到Api。但这会让人担心,因为对于MVC Web应用程序上的每个操作,都需要一个“Isthis user authenticated”调用 有人知道这两个选项中哪一个(或者第三个)更可取吗.net 如何将OAuth2身份验证令牌从MVC5 wepapplication传递到WebAPI2应用程序,.net,oauth-2.0,asp.net-mvc-5,asp.net-web-api2,cross-domain,.net,Oauth 2.0,Asp.net Mvc 5,Asp.net Web Api2,Cross Domain,我在使用OAuth2、WebAPI2和接口设置项目时遇到了一些问题 场景: 我正在建立一个基本上是WebApi2的项目。此WebApi为我的接口提供反业务逻辑和数据 目前,该界面是一个MVC5网络应用程序,但在未来,我希望能够将其他一些“应用程序”连接到它。这就是COR的用武之地:接口和WebAPI可以位于不同的服务器上 我想使用OAuth2,这样用户可以通过谷歌和其他提供商注册 问题: 它涉及注册部分: 首先,我尝试注册接口MVC应用程序,并尝试将身份验证令牌传递给WebAPI。这似乎不是实现
我知道这很宽泛,但请温柔一点;-) 这是建筑部分的一个相当大的问题 第二种方法似乎很复杂,因为您有两个UI界面,考虑了所有的应用程序(MVC5应用程序和现在注册的WebAPI) 因此,通过这样做,您将使您的接口更加依赖于API项目,从而使其紧密耦合 在第一种方法中,如果只有安全性是您的障碍,那么您可以在web API项目的服务调用之前和之后加密/解密令牌 使用第一种方法,您可以在本地存储或会话中的ur接口/表示层上持久化用户身份验证 WebApi本身用于应用程序和系统的其他组件(如业务层)之间的分布式通信 但是您已经有了接口层,所以我认为没有必要让WebApi过于依赖用户界面
第一种方法很好。我们的项目具有相同的体系结构 MVC站点->Web API(业务)->Web API(数据) 业务API将向第三方开发人员开放,因此我们需要OAuth2身份验证 Web API只能打开一些函数,不是全部,也许你会使用“范围”,但对我们来说,只有两种API,第三方API和我们网站的API 所以我们在authenticate handler中做了一些事情,授权头有一个“承载”方案,为什么我们的站点没有一个新的方案呢 然后它就起作用了。只需为MVC站点定义一个新方案,例如“ASPX”,并存储来自站点的表单cookie,然后解决它 我们还可以知道请求来自何处,因为报头方案不同
顺便说一句,您应该注意scheme的名称。关于如何实现外部身份验证。在解密cookie之前,请确保API服务器和MVC站点服务器具有相同的machinekey设置