gpt4 book ai didi

asp.net - UseIdentityServerBearerTokenAuthentication 不适用于 IdentityServer3

转载 作者:行者123 更新时间:2023-12-02 23:53:18 25 4
gpt4 key购买 nike

我已经使用了 IdentityServer v3,现在我希望一个网站既是身份主机又是 Web api 主机。

权限选项不用于验证 token 。我已经验证了 token 端点,并且 token 验证端点正在按预期工作(我可以使用 postman 获取并验证 token )。我使用 [Authorize] 属性来装饰我的 Controller 方法。 IdentityServer 上启用了完整日志记录,当使用 header 名称“Authorization”和值“Bearer mytokenhere”发出 api 请求时,不会记录任何内容。

这是使用 Visual Studio 2015 CTP6 的 ASP.NET 5 上的 vNext 网站。

        app.UseMvc();

var certFile = AppDomain.CurrentDomain.BaseDirectory + "\\myawesomesite.pfx";

app.Map("/core", core =>
{
var factory = InMemoryFactory.Create(
users: Users.Get(),
clients: Clients.Get(),
scopes: Scopes.Get());

var idsrvOptions = new IdentityServerOptions
{
SiteName = "Lektieplan",
Factory = factory,
RequireSsl = false,
SigningCertificate = new X509Certificate2(certFile, "lektieplan"),
CorsPolicy = CorsPolicy.AllowAll,
LoggingOptions = new LoggingOptions { EnableWebApiDiagnostics = true,EnableHttpLogging = true, IncludeSensitiveDataInLogs = true, WebApiDiagnosticsIsVerbose = true }
};

core.UseIdentityServer(idsrvOptions);
});

app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = "http://localhost:57540/core",
RequiredScopes = new[] { "api1" },
});

还有我的project.json

我的依赖项:

    "Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
"Microsoft.AspNet.Mvc": "6.0.0-beta3",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta3",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta3",
"Thinktecture.IdentityServer3": "1.3.0.0",
"Microsoft.AspNet.Owin": "1.0.0.0-beta3",
"Microsoft.AspNet.Security.DataProtection": "1.0.0.0-beta3",
"Thinktecture.IdentityServer3.AccessTokenValidation": "1.2.2",
"Autofac": "4.0.0-alpha1",
"log4net": "2.0.3"

在我看来,所提供的一些示例之所以有效,是因为基于 cookie 的选项。我不想使用 cookie。

最佳答案

UseIdentityServerBearerTokenAuthentication 是您唯一的身份验证类型吗?您是否为 MVC 定义了任何过滤器?

我会尝试将应用程序拆分为单独的 katana 管道,这样它们就不会发生冲突。

伪:

app.Map("/core", a => a.UseIdsrv());
app.Map("/somethingweb", a => a.UseMvc());
app.Map("/api", a => {
a.UseBearerTokenAuth();
a.UseWebApi(); //or Mvc from now on, with v5
});

猜测您还需要将 cookieauth 添加到该 mvc 管道,具体取决于您想要实现的目标。

关于asp.net - UseIdentityServerBearerTokenAuthentication 不适用于 IdentityServer3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988038/

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