gpt4 book ai didi

asp.net - 使用 OWIN oAuth 中间件(具有单独的身份验证和资源服务器)时,我收到 "Authorization has been denied for this request."错误消息

转载 作者:行者123 更新时间:2023-12-03 11:07:12 26 4
gpt4 key购买 nike

我正在尝试分离我的身份验证和资源服务器。我正在遵循本教程中提供的示例:
http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/
这是我的身份验证服务器中 Startup.cs 中的代码:

using Microsoft.Owin;
using Microsoft.Owin.Security.OAuth;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace AuthServer.Web
{
public class xxxxx
{
public void Configuration(IAppBuilder app) {
ConfigureOAuth(app);
}

public void ConfigureOAuth(IAppBuilder app)
{
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new SimpleAuthorizationServerProvider()
};

// Token Generation
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());

}
}
}
这是我的资源服务器(即我的示例 Web api 应用程序)中的 startup.cs:
using Microsoft.Owin.Security.OAuth;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace AuthTestApi.Web
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
}
}
}
当我将以下请求发布到我的身份验证服务器的“\token”端点时,我成功地收到了一个 token :
{
access_token: "PszrzJUtQUhX42GMryWjZiVHuKiJ9yCVH_1tZURumtC5mTj2tpuRDF3tXcN_VNIYuXY40IG0K7W3KASfJ9DlNIU2jMOkL2U5oEAXLNRRQuNYdEJ7dMPb14nW19JIaM4BMk00xfQ8MFRw0p6-uoh0-e-Q6iAiTwDNN3F7bYMF9qm874qhLWEcOt6dWQgwpdDUVPDi7F07-Ck0zAs48Dg5w4q93vDpFaQMrziJg9aaxN8",
token_type: "bearer",
expires_in: 86399
}
当我向我的 Controller 发布以下请求时,我收到“此请求的授权已被拒绝”错误消息?
GET /api/Test HTTP/1.1
Host: localhost:63305
Accept: application/json
Content-Type: application/json
Authorization: Bearer PszrzJUtQUhX42GMryWjZiVHuKiJ9yCVH_1tZURumtC5mTj2tpuRDF3tXcN_VNIYuXY40IG0K7W3KASfJ9DlNIU2jMOkL2U5oEAXLNRRQuNYdEJ7dMPb14nW19JIaM4BMk00xfQ8MFRw0p6-uoh0-e-Q6iAiTwDNN3F7bYMF9qm874qhLWEcOt6dWQgwpdDUVPDi7F07-Ck0zAs48Dg5w4q93vDpFaQMrziJg9aaxN8
Cache-Control: no-cache
Postman-Token: aeca8515-70b1-ef2c-f317-bf66136dccab
我的身份验证服务器和资源/Web api 项目在不同的解决方案中,并且在不同的端口上运行(......不确定这是否重要,但我认为我提到了它)。
此时,这两个项目正在使用 oAuth OWIN 中间件(并且几乎没有自定义代码)。中间件有点像黑盒,只是需要一些帮助来弄清楚为什么我会收到此错误消息。
另请注意,我在两个 Visual Studio 2013 Web 应用程序项目中运行两台服务器,这些项目位于在不同端口上运行的不同 VS 2013 解决方案中。我不确定这是否重要,但我想我会提到它。
提前致谢。

最佳答案

在过去的几天里,我遇到了完全相同的问题,尽管我在同一台机器上(不同的端口)托管了两个应用程序,但是没有 就无法工作。添加机器 key 两个 web.config 文件 确保 在两个应用程序中安装了相同的软件包版本号

关于asp.net - 使用 OWIN oAuth 中间件(具有单独的身份验证和资源服务器)时,我收到 "Authorization has been denied for this request."错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26458785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com