我有一个我用一组构建任务创建的任务组.我能够很好地编辑任务,但我现在意识到我需要在任务组中添加另一个参数.我该怎么做呢?
我正在尝试创建一个具有编辑器的应用程序,但我无法成功设置编辑器字段的高度.基本上它是一种反馈形式的东西,我希望用户能够看到他们正在键入的多行文本.
我通过设置Payload创建了一个JwtToken,如下所示
var payload = new JwtPayload
{
{"aud", "wellmark.com" },
{"iss", "wellmark" },
{"iat", DateTime.Now.Ticks },
{"exp", DateTime.Now.AddDays(90).Ticks },
};
Run Code Online (Sandbox Code Playgroud)
我必须使用ticks的原因是因为这是获得发布时间和到期时间的整数值的唯一方法.我同意ticks实际上是一个很长的而不是int,但这是唯一的方法.
现在,当我回来验证令牌时,我正在执行以下操作
var tokenValidationParams = new TokenValidationParameters
{
IssuerSigningKey = new X509SecurityKey(jwtCert),
ValidAudience = "masked",
ValidIssuer = "masked",
IssuerSigningKeyResolver = (string token, Microsoft.IdentityModel.Tokens.SecurityToken securityToken, string kid, TokenValidationParameters validationParameters) => new List<X509SecurityKey> { new X509SecurityKey(jwtCert) }
};
tokenHandler.ValidateToken(id, tokenValidationParams
, out validatedToken);
Run Code Online (Sandbox Code Playgroud)
然而,这是失败的说法
终身验证失败.令牌缺少过期时间.Tokentype:'System.IdentityModel.Tokens.Jwt.JwtSecurityToken'.
这很可能是因为验证方法试图长转换成int型,因为它无法将其转换,它只是返回一个空如图所示的文件中表示 这里.
有没有人在这个机制上取得成功.请注意,我使用X509证书签署我的Jwt.
拉辛哈
我在Azure中创建了HTTP触发器函数,希望从Azure SQL数据库中读取数据。我在功能应用程序的“连接字符串”部分中配置了连接字符串,如下图所示
我使用下面的代码尝试读取连接字符串。
var cnnString = ConfigurationManager.ConnectionStrings["TempleDataContext"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
执行时,我在日志中看到以下错误。
2018-10-24T18:13:56.385 [信息]函数'donors1'的脚本已更改。正在重新加载。2018-10-24T18:13:56.601 [信息]编译成功。2018-10-24T18:13:58.511 [信息]执行'Functions.donors1'(原因='此函数通过主机API以编程方式调用。',ID = 8b140087-4b50-450e-829c-f7abd9e3a1eb)2018-10-10 24T18:13:59.067 [信息] C#HTTP触发函数处理了一个请求。2018-10-24T18:13:59.245 [错误]执行了'Functions.donors1'(失败,ID = 8b140087-4b50-450e-829c-f7abd9e3a1eb)对象引用未设置为对象的实例。
我想测试所有返回到ConnectionStrings对象的内容,并将代码更改为
var cnnStrings = ConfigurationManager.ConnectionStrings;
foreach(var c in cnnStrings)
{
log.LogInformation(c.ToString());
}
Run Code Online (Sandbox Code Playgroud)
当我检查日志时,这是我看到的信息。
2018-10-24T18:16:53.755 [信息]函数'donors1'的脚本已更改。正在重新加载。2018-10-24T18:16:54.540 [信息]编译成功。2018-10-24T18:16:55.917 [信息]执行'Functions.donors1'(原因='此函数通过主机API以编程方式调用。',ID = 508c49bf-d5e6-4a99-b1db-e1a79545fa91)2018-10-10 24T18:16:56.063 [信息] C#HTTP触发函数处理了一个请求。2018-10-24T18:16:56.070 [Information]数据源=。\ SQLEXPRESS;集成安全性= SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf;用户实例= true 2018-10-24T18:16:56.079 [Information]已执行'Functions.donors1'(成功,ID = 508c49bf-d5e6-4a99-b1db-e1a79545fa91)
我对它在哪里获取ConnectionString信息感到困惑。
为了测试,我还添加了几行来阅读应用程序设置
var appSettings = ConfigurationManager.AppSettings;
foreach(var a in appSettings)
{
log.LogInformation(a.ToString());
}
Run Code Online (Sandbox Code Playgroud)
它没有显示这些行的任何信息。
我正在使用C#脚本直接在门户中编写Azure函数。我想念什么吗?任何帮助将不胜感激。