我一直在考慮使用 ServiceStack 來(lái)創(chuàng)建一個(gè)輕量級(jí)的 rest api,并注意到當(dāng)我查看 swagger-ui 時(shí),我注意到有一個(gè) auth 端點(diǎn)和一個(gè)身份驗(yàn)證,它們似乎都在做同樣的事情。我的配置。代碼是: public override void Configure(Container container) { //Set Json as default content type SetConfig(new HostConfig { DefaultContentType = MimeTypes.Json }); //Create connection to sql server DB var sqlDb = new OrmLiteConnectionFactory("*connection string*", SqlServer2016Dialect.Provider) { ConnectionFilter = x => new ProfiledDbConnection(x, Profiler.Current) }; container.Register<IDbConnectionFactory>(sqlDb); //Auth Feature setup Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] { new ApiKeyAuthProvider(AppSettings) { KeyTypes = new [] { "secret", "publishable" } }, new BasicAuthProvider(), new FacebookAuthProvider(AppSettings), new CredentialsAuthProvider() }) { IncludeRegistrationService = true } ); //Registration Plugin Plugins.Add(new RegistrationFeature()); //Mini Profiler Plugins.Add(new MiniProfilerFeature()); //Swagger ui Plugins.Add(new SwaggerFeature()); //Setup memory cache container.Register<ICacheClient>(new MemoryCacheClient()); //setup user auth repo in Sql Server instance var userRep = new OrmLiteAuthRepository(sqlDb); userRep.InitSchema(); container.Register<IUserAuthRepository>(userRep); //Exclude metadata typeof(AssignRoles).AddAttributes(new ExcludeAttribute(Feature.Metadata)); typeof(UnAssignRoles).AddAttributes(new ExcludeAttribute(Feature.Metadata)); }有沒(méi)有辦法只顯示 /auth 端點(diǎn)并隱藏另一個(gè)?我嘗試使用:typeof(Authenticate).AddAttributes(new ExcludeAttribute(Feature.Metadata)); 但這隱藏了兩條路徑。
1 回答

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以通過(guò)僅指定要注冊(cè)的 Auth 服務(wù)路由來(lái)從 AuthFeature 中刪除其他路由:
Plugins.Add(new AuthFeature(...) {
ServiceRoutes = {
[typeof(AuthenticateService)] = new[] {"/auth", "/auth/{provider}"}
}
});
- 1 回答
- 0 關(guān)注
- 219 瀏覽
添加回答
舉報(bào)
0/150
提交
取消