我需要创建一个PBKDF2-SHA256密码哈希,但是遇到了一些麻烦.
我下载了Bouncy Castle的回购,但在单元测试中找到了我想要的东西.
在这里找到了一些示例代码,但这只是SHA1.代码的关键点是:
/// <summary>
/// Computes the PBKDF2-SHA1 hash of a password.
/// </summary>
/// <param name="password">The password to hash.</param>
/// <param name="salt">The salt.</param>
/// <param name="iterations">The PBKDF2 iteration count.</param>
/// <param name="outputBytes">The length of the hash to generate, in bytes.</param>
/// <returns>A hash of the password.</returns>
private static byte[] PBKDF2(string password, byte[] salt, int iterations, int outputBytes)
{
var pdb = new Pkcs5S2ParametersGenerator();
pdb.Init(PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()), salt,
iterations);
var key = (KeyParameter)pdb.GenerateDerivedMacParameters(outputBytes * 8);
return key.GetKey(); …Run Code Online (Sandbox Code Playgroud) 我想.bak使用.NET Core 还原SQL Server数据库().这是我在GitHub上的空网站,所以你可以看到当前的配置.
在完整的.NET Framework中恢复数据库非常简单 - 这可以在这里看到.
有没有办法直接从.NET Core中执行此操作,还是需要引用.NET Framework并使用.NET Framework类库?
无论我如何尝试,我都无法让它发挥作用.
编辑
我尝试添加SQLManagementObject,但不能.我在.NET Core 2.0上.
编辑2
我们的旧项目主要是ADO.NET.他们(广泛地)使用了以下我无法带入.NET Core Project的DLL:
我有一个.NET Core Web应用程序。我正在使用publish命令创建一个自包含的部署。
它会创建文件并似乎会创建.net核心dll,但是在Windows 10上的IIS中运行时,我仍然需要安装.NET Core Runtime才能使其正常工作。安装.NET Core Hosting捆绑包后,它可以正常工作。
在询问之前,我已经审查了许多其他帖子,但找不到答案。
默认情况下,IIS给出以下错误:
HTTP错误500.19 –内部服务器错误
我的发布命令:
dotnet publish "mydirectory\mywebsite.csproj" --self-contained --framework netcoreapp2.1 -r win10-x64 -c Release
Run Code Online (Sandbox Code Playgroud)
csproj看起来像这样:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<UserSecretsId>aspnet-mywebsite-656GASF8-B9H4-5963-1038-5D735B609E15</UserSecretsId>
<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
这是已发布的文件。
我以为'l1-1-0'部分可能是错误的框架版本,但我的dotnet版本是2.1.500。
我需要怎么做才能使其正常工作?
但是,在 .NET Core 世界中,我找不到一篇关于如何在团队之间共享此类信息的好文章。
举例来说,我们有一个 .NET Core 项目,其中存储了信息,secrets.json并且有 10 个开发人员在使用该项目。
我能想到的选项:
将某些内容检查到源代码管理中 - 似乎违背了这一点(除了不小心将测试设置发布到现场之外)。
只是在我们之间交谈 - 有一种感觉,如果有人添加了一个秘密并去度假,其他开发人员会浪费时间找出遗漏了什么。如果两个开发人员同时添加一些东西,也可能会导致问题。
忽略secrets.json并始终使用Azure KeyVault - 即使对于开发人员也是如此。更复杂,我没有在任何地方看到推荐的,但它也适用于构建服务器。缺点是 Vault 可能会因未使用的设置而变得混乱,并且不清楚哪些需要实时复制。
可能还有其他选项我错过了。
与其他开发人员共享/同步秘密的最佳方式是什么?
编辑以下答案:
走 KeyVault 路线将起作用。如前所述,这需要额外的设置(例如,使用证书)。Microsoft Docs中的更多详细信息。
我有一个有角度的项目,结构如下:
\n站点1
\n站点2
\n我知道这并不理想,但事实就是如此。
\n除了应用程序的名称之外,这些package.json文件完全相同。
该项目是在 Angular 8 上启动的,并且一直升级得很好,但是从 11 到 12 我遇到了问题:
\nSite1 构建良好并且运行良好。Site2 构建良好,但运行时立即出错
\n\n\n错误:必须从注入上下文\natjectInjectorOnly(核心:4745)\nat模块调用inject()。\xc9\xb5\xc9\xb5inject(核心:4755)\natObject.RouterModule_Factory [作为工厂](路由器:5999) )\nat R3Injector. Hydro (core.js:11438)\nat R3Injector.get (core.js:11257)\nat core.js:11295\nat Set.forEach ()\nat R3Injector._resolveInjectorDefTypes (core.js:11295 )\nat 新 NgModuleRef$1 (core.js:25325)\nat NgModuleFactory$1.create (core.js:25379)
\n
由于 Site1 工作正常,我认为它一定是调用 SharedModule 的原因?
\n我尝试添加"preserveSymlinks": true,到projects.$name.architect.build.options,但这不起作用。我没有使用npm link,因为另一个模块不是库(我知道它应该这样设置,但事实并非如此)。 …
这个问题类似于这里,这里,这里,这里和这里的帖子,但我被困住了,花了好几个小时试图解决它.
我有一个摄像机预览(现在总是以正确的方向显示),但是当我点击记录(mediaRecorder.start();)时,视频方向会改变.我尝试过使用setOrientationHint,但它似乎没有什么区别(如下面代码中的注释所标记).
它会影响我的测试设备(Galaxy和Jelly Bean上的Xperia).我该怎么做才能解决这个问题?
这是我的代码:
XML
<RelativeLayout android:id="@+id/surface_camera"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:layout_weight="1"
>
<RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<FrameLayout
android:id="@+id/videoview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<Button
android:id="@+id/mybutton"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:text="REC"
android:textSize="12dp"/>
</RelativeLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
Java的
package hockeyj.androidlisttesting;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.content.Context;
import android.hardware.Camera;
import android.media.CamcorderProfile;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.Display;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button; …Run Code Online (Sandbox Code Playgroud) 在标准.NET版本的实体框架中,您可以使用撤消上次数据库更新.
Update-Database -TargetMigration "NameOfPreviousMigration"
Run Code Online (Sandbox Code Playgroud)
如果您在Entity Framework for .NET Core(EntityFrameworkCore)上尝试此操作,则会收到以下错误:
Update-Database:找不到与参数名称"TargetMigration"匹配的参数.在行:1 char:17 + Update-database -TargetMigration"NameOfPreviousMigration"+ ~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidArgument :( :) [Update-Database],ParameterBindingException + FullyQualifiedErrorId :NamedParameterNotFound,Update-Database
如何在.NET Core中还原数据库?
c# entity-framework entity-framework-core .net-core asp.net-core
我有使用Powershell脚本访问VSTS API的VSTS构建,类似于Microsoft文档中详细介绍的。
该文件指出:
要使脚本能够使用构建过程OAuth令牌,请转到构建定义的“选项”标签,然后选择“允许脚本访问OAuth令牌”。
完成之后,您的脚本可以使用SYSTEM_ACCESSTOKEN环境变量来访问VSTS REST API。例如:
例:
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build-release/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0"
Write-Host "URL: $url"
$definition = Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Definition = $($definition | ConvertTo-Json -Depth 1000)"
Run Code Online (Sandbox Code Playgroud)
如Microsoft文档中所述,我确定您曾经去过Build> Options,然后单击“允许脚本访问OAuth令牌”,但是它不再存在(请参见下图)。
当我尝试构建时,会得到以下信息(对于我的旧构建不会发生):
Invoke-RestMethod:{“ $ id”:“ 1”,“ innerException”:null,“ message”:“ TF400813:用户”无权访问此文件
此外,当我克隆一个构建(3个月前完成该构建时效果很好)时,该属性设置为false(在原始属性上设置为true)。
更新:如果我从VSTS导出,更改该属性然后再次导入,它可以工作,但是我确实需要没有这种手动干预的解决方案。
请现在应该怎么做?
我正在尝试使用C#调用存储过程.存储过程的运行时间很长(3到4分钟),当我尝试运行它们时会导致超时异常.如何允许它们以更长的超时完成运行?
当它抛出异常时,存储过程是否继续在服务器上运行,还是停止?
我的应用程序是游戏服务器,存储过程运行以更新和删除邮件.它运行缓慢,因为有太多的记录和太多的连接,用户在SP运行的同时插入另一条记录.
我只需要运行SP并等待很长时间来响应服务器.
@minitech感谢您编辑我的问题
这是SP代码
ALTER PROCEDURE [dbo].[SP_Mail_Scan]
@NoticeUserID nvarchar(4000) output
AS
Set @NoticeUserID=''
Declare @AuctionID Int
Declare @AuctioneerID Int
Declare @AuctioneerName Nvarchar(100)
Declare @BuyerID Int
Declare @BuyerName Nvarchar(100)
Declare @ItemID Int
Declare @PayType Int
Declare @Price Int
Declare @Name Nvarchar(200)
Declare @MailID Int
Declare @SenderID Int
Declare @Sender Nvarchar(100)
Declare @ReceiverID Int
Declare @Receiver Nvarchar(100)
Declare @Title Nvarchar(1000)
Declare @Content Nvarchar(4000)
Declare @SendTime DateTime
Declare @IsRead Bit
Declare @IsDelR Bit
Declare @IfDelS Bit
Declare @IsDelete Bit
Declare @Annex1 …Run Code Online (Sandbox Code Playgroud) 读到 RijndaelManaged 已被弃用并且AesGcm(在 .NET Core 3.1 中引入)优于AesManaged后,我尝试使用本教程和此答案来实现AesGcm。
这是我的代码:
/// Perform AES Encryption, returning the result as a byte array.
/// </summary>
/// <param name="bytesToEncrypt">string, file or data represented as byte array</param>
/// <param name="passwordBytes">A unique password for the encryption (must be 32 bytes?)</param>
/// <returns>The data encrypted</returns>
public byte[] EncryptData(byte[] bytesToEncrypt, byte[] passwordBytes)
{
// Based on /sf/ask/4262254181/#60891115
// Get parameter sizes
int nonceSize = AesGcm.NonceByteSizes.MaxSize;
int tagSize = …Run Code Online (Sandbox Code Playgroud) 这个问题看起来很简单,但我正在准备 70-483 C# 考试,有点困惑。
我知道公钥/私钥是数学上相互关联的属性。一个可以加密消息,另一个可以解密。
我读到的所有内容,例如维基百科、Quora、codeproject 都显示了用于加密的公钥和用于解密的私钥。
然而,我正在进行的模拟考试(MeasureUp)似乎改变了所使用的考试。
有时答案声明使用公钥进行加密,但有时他们声明使用私钥。
例子:
应用程序必须与 DMV 安全通信。DMV 必须确保从您的应用程序发送的数据在传输过程中没有被修改。
回答示例:
生成数据的哈希值。使用您公司的私钥加密哈希值。将数据和加密的哈希值发送到 DMV。
然后“显示答案”部分继续解释上面明确指出使用私钥加密的内容。
难道你必须在上下文中考虑什么是公开的、什么是私有的吗?
例如
A) 如果其他人是否可以看到该消息并不重要,只要他们无法制作自己的消息即可 - 使用您“保密”的密钥进行加密。
B) 如果其他人可以发送消息,只要我是唯一可以阅读该消息的人 - 使用公开可用的密钥进行加密。
我觉得 MeasureUp 可能错了,但我肯定比大公司更有可能错。
请有人解释/澄清为什么这个答案是正确的?
我将以下代码添加到我的C#Windows窗体应用程序中,以在单击关闭按钮时显示消息框。但是它给了我以下错误。
错误CS0116名称空间不能直接包含诸如字段或方法之类的成员eBay源C:\ Users \ Supun \ Documents \ Visual Studio 2015 \ Projects \ ebay源\ ebay源\ Form1.cs 107活动
这是我使用的代码。
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dialog = dialog = MessageBox.Show(
"Do you really want to close the program?",
"SomeTitle",
MessageBoxButtons.YesNo);
if (dialog == DialogResult.No)
{
e.Cancel = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要做什么来修复它?
c# ×7
.net-core ×4
sql-server ×3
asp.net-core ×2
encryption ×2
aes ×1
aes-gcm ×1
android ×1
angular ×1
azure-devops ×1
bouncycastle ×1
hash ×1
powershell ×1
winforms ×1