我希望实现(或构建作为最后的手段)一种调查引擎,它允许可扩展性并集成到现有的工作流引擎中.
调查/问卷引擎应该允许管理员用户添加新的问题和响应类型(text/bool/multiple/etc),应该使用SQL Server进行持久性和ASP.NET 2.0或更高版本.它应该利用AD for Windows Integrated Auth和安全性.
有没有人知道满足这些基本要求的现成解决方案(免费或便宜甚至更好)?
我在AWS中有一个自定义授权器lambda函数,它为一个API配置了另一个带有POST资源的Lambda函数.
授权器是按类型设置的Request,而不是Token因为我没有在Authorization标头中使用令牌,而是想要访问正在发布的表单数据.
当我检查event参数的内容到我的授权者函数时,我没有看到任何原始POST请求体(表单数据).但是,如果我将资源更改为a GET,我会queryStringParameters按预期看到表单数据.
(请注意,当请求为POST时,queryStringParameters始终为空对象)
在使用POST方法时,无论如何都要从函数中的请求中访问表单数据?
以下是event使用POST时授权者函数的参数将包含的示例:
{
type: 'REQUEST',
methodArn: 'arn:aws:execute-api:us-east-1:********:********/dev/POST/receive',
resource: '/receive',
path: '/sms/receive',
httpMethod: 'POST',
headers: {
Accept: '*/*',
'CloudFront-Viewer-Country': 'US',
'CloudFront-Forwarded-Proto': 'https',
'CloudFront-Is-Tablet-Viewer': 'false',
'CloudFront-Is-Mobile-Viewer': 'false',
'User-Agent': 'TwilioProxy/1.1',
'X-Forwarded-Proto': 'https',
'CloudFront-Is-SmartTV-Viewer': 'false',
Host: 'api.myredactedcompany.io',
'X-Forwarded-Port': '443',
'X-Amzn-Trace-Id': 'Root=**************',
Via: '1.1 ***************.cloudfront.net (CloudFront)',
'Cache-Control': 'max-age=259200',
'X-Twilio-Signature': '***************************',
'X-Amz-Cf-Id': '****************************',
'X-Forwarded-For': '[redacted IP addresses]',
'Content-Length': '492',
'CloudFront-Is-Desktop-Viewer': 'true',
'Content-Type': 'application/x-www-form-urlencoded'
}, …Run Code Online (Sandbox Code Playgroud) 我环顾四周,但似乎在文档中找不到任何地方,并且这些 API 的 Intellisense 文档几乎相同。
BlockBlobClientAzure 存储与BlobClientAzure 存储 v12 SDK 中的之间有什么区别?
我应该使用哪一种来使用 Azure 存储 v12 .NET SDK 将文件流高效上传到 Azure Blob 存储?
这两段代码以及它们如何将文件上传到云端有什么区别吗?
var container = _blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = container.GetBlobClient(filename); // this?
var blockBlockClient = container.GetBlockBlobClient(filename); // or this?
Run Code Online (Sandbox Code Playgroud) 我有生产代码,该BlobClient.DownloadAsync()代码使用 nuget 包 v12.8 从 Azure Blob 存储下载文件的方法Azure.Storage.Blobs,并且它似乎工作得很好。但是,我升级了 nuget 包,并准备编写一些新代码来处理 zip 文件,这些代码也依赖于下载来提取 zip...但注意到 Storage SDK 的最新 API 中存在一些变化。
除了来自 Microsoft 以及互联网的几乎每个示例之外,由于该方法将返回的内容包装BlobDownloadInfo到一个Response<T>对象中,所以略有不正确 - 迫使您首先调用.Value,他们似乎也使用上述方法来下载 blob 文件 -但我无法再通过智能感知找到该方法。
当我查看BlobBaseClient.DownloadAsync()方法的源代码时,我发现它用 装饰[EditorBrowsable(EditorBrowsableState.Never)],这意味着该 API 可能会通过向开发人员隐藏它而慢慢被拿走,但不会破坏现有代码或标记为Obsolete。但我找不到任何可以肯定指出这一点的文章/问题/文档。看起来是这样的:
话虽如此......如果目标是“流”,那么人们应该使用 v12.9 版本的 .NET SDK 以异步方式从 Azure Blob 存储(块 blob)下载文件的方式是什么它通过 ASP.NET 控制器操作(REST 端点)传输到浏览器等客户端(不保存到服务器上的本地文件)?
上似乎有几个可用的“下载”API BlobClient,但它们的文档有些模糊或不明确,并且 MS 文档似乎没有进一步澄清:
此外,如果尝试执行一些其他操作,而不是通过 REST API 下载到浏览器客户端,例如,如果您正在解压缩 blob 文件并且提取的文件也将进入 blob 存储,那么最好不要下载而是通过OpenReadAsync() …
我有一个使用OOB数据库初始化程序创建的数据库,我使用的是Code First和EF 4.3.1.
我想利用Add-Migration cmdlet上的新"IgnoreChanges"标志,以便我可以更改一些列并添加默认SQL值.本质上,我的一些实体有一个名为DateLastUpdated的列,我想将DEFAULT设置为sql表达式GETDATE().
我使用"add-migration InitialMigration -ignorechanges"创建了InitialMigration,然后我将以下内容添加到Up()和Down():
public override void Up()
{
AlterColumn("CustomerLocations", "DateLastUpdated", c => c.DateTime(defaultValueSql: "GETDATE()"));
AlterColumn("UserReportTemplates", "DateLastUpdated", c => c.DateTime(defaultValueSql: "GETDATE()"));
AlterColumn("Chains", "DateLastUpdated", c => c.DateTime(defaultValueSql: "GETDATE()"));
}
public override void Down()
{
AlterColumn("CustomerLocations", "DateLastUpdated", c => c.DateTime());
AlterColumn("UserReportTemplates", "DateLastUpdated", c => c.DateTime());
AlterColumn("Chains", "DateLastUpdated", c => c.DateTime());
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试运行"Update-Database -verbose",但我发现它正在尝试在数据库上创建相同的命名默认约束,并且SQL抛出异常:
Applying explicit migrations: [201203221856095_InitialMigration].
Applying explicit migration: 201203221856095_InitialMigration.
ALTER TABLE [CustomerLocations] ADD CONSTRAINT DF_DateLastUpdated DEFAULT GETDATE() FOR [DateLastUpdated]
ALTER TABLE [CustomerLocations] ALTER COLUMN [DateLastUpdated] [datetime] …Run Code Online (Sandbox Code Playgroud) 我正在使用System.IdentityModel使用具有声明主体的表单身份验证来验证ASP.NET MVC4 Web应用程序中的用户.(基于这篇文章的代码:http://brockallen.com/2013/01/26/replacing-forms-authentication-with-wifs-session-authentication-module-sam-to-enable-claims-aware-identity/)
我的ClaimsBasedAuthenticationService类从SessionSecurityToken发出SAM cookie,一切都很好......除了我刚才注意到它没有创建会话cookie作为HTTPOnly或要求他们需要SSL.当我调试代码时,我可以看到在调试器中正确设置了CookieHandler对象上的那些属性,但是创建的最终会话cookie根本没有标记HTTPOnly和Secure标志.
我有web.config行将这些显式设置为true,如下所示:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
<authentication mode="Forms">
<forms ... requireSSL="true" />
</authentication>
...
</system.web>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="true" hideFromScript="true" />
</federationConfiguration>
</system.identityModel.services>
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我,为了让我的FedAuth cookie从脚本(HTTPOnly)中隐藏并需要SSL,我还缺少其他东西吗?
forms-authentication claims-based-identity session-cookies wif asp.net-mvc-4
据我所知,我们可以使用一个阶段来构建 Dockerfile,以便dotnet test在 docker 构建期间执行和运行我们的单元测试。
我的问题是我们是否希望这些测试在本地开发期间运行(例如使用 Visual Studio)。
如果我们运行 (F5) 一个设置为构建到 Docker 映像中的 .NET Core 应用程序,然后使用 Docker 的 VS 工具进行调试等,那么我们是否每次都会运行我们的单元测试我们在本地运行/调试?
如果我在开发/调试期间已经使用了 Visual Studio 内置的测试运行程序(甚至是 Live Unit Test 功能)怎么办?如果我在 Dockerfile 中定义用于运行测试的阶段,我是否仍然被迫在 docker 构建期间运行由 IDE 的 Run/F5 命令触发的相同单元测试?
如果没有,在 Docker 中运行测试但仅在 CI 构建期间而不是本地开发构建期间执行该阶段的推荐方法是什么?
.net ×4
.net-core ×1
asp.net ×1
aws-lambda ×1
azure ×1
c# ×1
docker ×1
lambda ×1
sql-server ×1
survey ×1
unit-testing ×1
wif ×1
workflow ×1