以前,使用Visual Studio 2012,我能够将CodeTemplates文件夹放到我的项目目录中,然后修改现有T4 templates或添加全新的T4模板以满足我的特定代码生成要求.
似乎前面描述的方法将不再适用于Visual Studio 2013引入的新脚手架引擎.特别是,新的脚手架逻辑似乎存在于此:
C:\ Program Files(x86)\ Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding
我假设您需要构建一个新的自定义脚手架DLL并使用Visual Studio注册它以执行您自己的代码生成.当然,我不知道该怎么做.
那么,有没有人知道在Visual Studio 2013中使用自定义T4模板生成代码(例如视图)的方法?
我们在Windows上成功运行了基于IdentityServer4的STS,其中签名凭证已通过个人>证书下的.pfx安装到本地计算机,并在受信任人员>证书下安装.cer.然后我们可以通过其Common Name加载Signing Credential,如下所示:
services.AddIdentityServer()
.AddSigningCredential("CN=CERT_NAME")
...
Run Code Online (Sandbox Code Playgroud)
我们现在想要在Docker容器中运行我们的STS实现,并且已经遇到以下异常:
Unhandled Exception: System.PlatformNotSupportedException: Unix LocalMachine X509Store is limited to the Root and CertificateAuthority stores.
at Internal.Cryptography.Pal.StorePal.FromSystemStore(String storeName, StoreLocation storeLocation, OpenFlags openFlags)
at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags)
at IdentityModel.X509CertificatesFinder.Find(Object findValue, Boolean validOnly)
at Microsoft.Extensions.DependencyInjection.IdentityServerBuilderExtensionsCrypto.AddSigningCredential(IIdentityServerBuilder builder, String name, StoreLocation location, NameType nameType)
Run Code Online (Sandbox Code Playgroud)
根据上面的错误消息,以及我们在这里使用的AddSigningCredential方法的来源:https://github.com/IdentityServer/IdentityServer4/blob/ec17672d27f9bed42f9110d73755170ee9265116/src/IdentityServer4/Configuration/DependencyInjection/BuilderExtensions/Crypto.cs# L73,很明显我们的问题是IdentityServer4正在本地机器的个人("我的")商店中寻找证书,但是,根据错误消息,这样的商店在Unix环境中不可用.
因此,我很想知道是否存在一些最佳实践,用于在Docker容器中加载IdentityServer4的签名凭据,如果无法通过名称或指纹加载它.唯一的选择是将证书与我们的应用程序捆绑在一起,然后按文件名加载吗?
感谢您提供的任何帮助!
有没有人成功地使用 Swagger 代码生成器创建了一个可以在浏览器中使用的 TypeScript Fetch 客户端?我正在尝试在使用 TypeScript 的 React 应用程序中使用生成的 API 客户端。
虽然我已经成功生成了一个客户端(即 api.ts 文件),但我对它以以下导入开头的事实感到困惑:
import * as querystring from "querystring";
import * as url from "url";
import * as isomorphicFetch from "isomorphic-fetch";
import * as assign from "core-js/library/fn/object/assign";
interface Dictionary<T> { [index: string]: T; }
export interface FetchAPI { (url: string, init?: any): Promise<any>; }
...
Run Code Online (Sandbox Code Playgroud)
虽然我可以成功找到 isomorphic-fetch 和 core-js 的 TypeScript 类型(即 @types),但我找不到查询字符串和 url 的类型。结果,我得到[ts] Cannot find module...了querystring,url还有assign进口。
这个客户端实际上不是打算在浏览器中使用吗?否则,任何人都可以为我在这里可能做错的事情提供任何建议吗?
在此先感谢您的帮助!