Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
867 views
in Technique[技术] by (71.8m points)

identityserver4 - ServiceStack with IdentityServer

Using the template at https://github.com/NetCoreTemplates/mvcidentityserver and trying to require Authorization to access the ServiceStack "Hello" object.

I'm able to retrieve a token and call

https://localhost:5001/servicestack-identity

and

https://localhost:5001/webapi-identity

from PostMan successfully.

However, if I add an Authenticate attribute

namespace MyApp.ServiceInterface
{
    public class MyServices : Service
    {
        [Authenticate]
        public object Any(Hello request)
        {
            return new HelloResponse { Result = $"Hello, {request.Name}!" };
        }

to the Any method in MyServices, I'm not able to call /Hello with the token.

/Hello fails

/requiresauth gives the same result

/requiresauth


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I was able to get this to work by adding the following to MyApp.Startup.ConfigureServices()...

  services.AddAuthentication("Bearer")
                .AddJwtBearer("Bearer", options => {
                    options.Authority = "https://localhost:5000";
                    options.RequireHttpsMetadata = false;

                    options.Audience = "api1";
                });

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...