我有一个ASP.NET Web API,我想与ssl一起使用.目前,服务器正在使用自签名证书,此时允许使用http和https.我有一个非常基本的测试客户端,它适用于http,但不适用于https.我想知道如何修改下面的客户端代码,以便它可以与https一起使用.目前IE,Firefox和Chrome都可以使用http和https(带有证书警告)连接到Web API,因此这让我相信我不应该只修改服务器上的任何内容,只需在客户端代码中.这是客户端代码:
static void Main(string[] args)
{
try
{
if (args.Length != 1)
{
Console.WriteLine("Please provide a url, and only a url.");
return;
}
var url = new Uri(args[0]);
var urlAuthority = url.GetLeftPart(UriPartial.Authority);
var urlPathQuery = args[0].Substring(urlAuthority.Length);
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(urlAuthority);
HttpResponseMessage response = client.GetAsync(urlPathQuery).Result;
if (response.IsSuccessStatusCode)
Console.WriteLine(response.Content.ReadAsAsync<string>().Result); // expecting scalar results only
else
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}
catch (Exception ex)
{
Exception tempEx = ex;
while (tempEx != null)
{
Console.WriteLine(tempEx.Message); …Run Code Online (Sandbox Code Playgroud) \n\nGitHub 现在支持 SSH 提交验证,因此您可以使用自行生成的 SSH 公钥在本地签署提交和标签,这将使其他人对您所做更改的来源充满信心。如果提交或标签具有可加密验证的 SSH 签名,GitHub 会将提交或标签设为“已验证”或“部分验证”。
\n如果您已使用 SSH 密钥通过 GitHub 进行身份验证,现在可以上传相同或不同的密钥对\xe2\x80\x99s 公钥以将其用作签名密钥。您可以添加到帐户的签名密钥数量没有限制。有关更多信息,请访问GitHub 文档中的SSH 提交验证。
\n
鉴于最近发生的事件,我想知道:使用 SSH 密钥与 GPG 密钥签署提交之间有什么区别?
\n注意: 这是一个类似的问题,询问 GPG 和 SSH 之间的一般差异。这个问题具体是关于使用其中一种或另一种进行签名之间的区别。
\n我有一个带有多个锚标签的视图.有没有办法使用模型对象返回视图并转到视图中的特定锚标记?
例如,我的View有这样的锚点:
<a name="Section1"></a>
...
<a name="Section2"></a>
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用以下方法击中这些锚点:
return Redirect(Url.RouteUrl(new { controller = "myController", action = "myAction" }) + "#Section1");
Run Code Online (Sandbox Code Playgroud)
但我不认为我可以使用重定向,因为我需要发送一个模型:
Run Code Online (Sandbox Code Playgroud)return View("myAction", model); // how to go to anchor?
注意:该问题的标题已根据执行后更新遥控器的意图进行了更改git reset --hard。作为上下文,这个问题的原始标题是:
如何在 Visual Studio 中重置为之前的 Git 提交并让远程分支反映更改?
我知道之前已经有人问过这个问题,但我仍然无法让事情正常进行。
我需要删除两个提交。所以从树的顶部我有: BadCommit 1 BadCommit 2 GoodCommit
在 VS 2019 中,我右键单击 GoodCommit -> 重置 -> 删除更改
它在本地重置为 GoodCommit。但是,如果我尝试将其推送到存储库,我会收到一条消息,指出本地分支位于远程分支后面。如果我拉动和推动,我就会立即回到开始的地方,2 个 BadCommits 位于顶部。
如何将远程分支恢复到 GoodCommit?
我的目标是复制现有实体,稍微修改它,然后插入修改后的版本.
我尝试了两种似乎都有效的方法:
var thing = context.Things.Where(x => x.SomeID == someid).AsNoTracking().Single();
thing.AnotherID = 1234;
context.Things.AddObject(thing);
context.SaveChanges();
var thing = context.Things.Where(x => x.SomeID == someid).Single();
context.Detach(thing);
thing.AnotherID = 1234;
context.Things.AddObject(thing);
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
据我所知,他们都在实现我的目标.其中一个比另一个好,还是它们都同样好(或错误!?)
我可以运行哪些命令来手动生成(或确认)文件integrity中包含的字段package-lock.json?
以下是 SHA1 的示例:
"uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
Run Code Online (Sandbox Code Playgroud)
另一个使用 SHA512:
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
Run Code Online (Sandbox Code Playgroud)
我的疯狂猜测是针对 tgz 文件运行指定的哈希,然后对其进行 Base64 编码,但事实并非如此。例如:
$ sha1sum.exe uglify-js-2.8.29.tgz
29c5733148057bb4e1f75df35b7a9cb72e6a59dd *uglify-js-2.8.29.tgz
$ sha1sum.exe uglify-js-2.8.29.tgz | cut -d " " -f1
29c5733148057bb4e1f75df35b7a9cb72e6a59dd
$ sha1sum.exe uglify-js-2.8.29.tgz | cut -d " " -f1 | base64
MjljNTczMzE0ODA1N2JiNGUxZjc1ZGYzNWI3YTljYjcyZTZhNTlkZAo=
Run Code Online (Sandbox Code Playgroud)
这显然不等于:
KcVzMUgFe7Th913zW3qcty5qWd0=
Run Code Online (Sandbox Code Playgroud) 在 Visual Studio 中查看 Git 提交时(我目前使用的是 2017),每天很多次我希望打开在提交中编辑的文件的本地副本,但没有内置选项(我知道)可以做到这一点。以下是查看提交时的可用选项:
Note that the "Open" option opens a read-only copy of the file as it looked in the commit. I would like to open the current version of that file in my checked out branch (usually so I can make edits based on PR suggestions). Today what I do is: switch over to Solution Explorer, type the filename into the search box, wait for it to find it, and then open the file. But …
我在我的强类型视图中定义了一个TextArea
@Html.TextAreaFor(x => x.Text)
Run Code Online (Sandbox Code Playgroud)
我的控制器Action最初看起来与此类似:
[HttpPost]
public ViewResult Index(MyViewModel vm)
{
using (var db = new MyEntities())
{
Post p = new Post();
p.Text = vm.Text;
db.Posts.AddObject(p);
db.SaveChanges();
}
return View();
}
Run Code Online (Sandbox Code Playgroud)
这很好.用户输入TextArea的文本被传递到控制器并通过Entity Framework保存到SQL Server的Post表中.该字段的数据类型是varchar(1000).(使用带有[StringLength(1000)]验证的MetadataType在Text字段上还有模型验证.)
我注意到如果我尝试复制一些HTML源并将其粘贴到TextArea并提交它,我收到以下错误:
"从客户端检测到一个潜在危险的Request.Form值"
这个错误让我想到了这个问题,从中可以看出我可以简单地添加
[HttpPost, ValidateInput(false)]
Run Code Online (Sandbox Code Playgroud)
我的行动停止这种类型的验证.这非常有效,但令我惊讶的是,无论我尝试放入TextArea,我都不会引起任何问题.如果我粘贴javascript,html或带有引号字符的T-SQL语句,它仍然可以正常工作.我看到我进了出现在SQL表中的文本区域的确切角色,如果我显示的文字回的看法,我看到在源中的每个字符转换为HTML对应,并在屏幕上显示看起来就像当我进入它时它就会这样做.我没有做任何文本转换来实现这一点.默认情况下,一切都按照我的要求完成.当然我很高兴这一点,但是当我读到关于禁用验证时,通常会发出警告,你应该理解这样做的后果,我不认为我这样做.所以我想知道,后果是什么?是否有人可能在我的TextArea中输入任何可能因禁用输入验证而搞砸的内容?
如果它是相关的,我的特定设置是MVC4,.NET 4.0,实体框架4.4,SQL Server 2012 Express.
当我想强制推送时,我几乎总是使用--force-with-lease. 今天我升级到 Git 2.30 并发现了一个新选项:--force-if-includes.
阅读更新的文档后,我仍然不完全清楚在哪种情况下我会使用--force-if-includes而不是--force-with-lease像我通常那样使用。
如果要对GridView的每一行执行操作,通常会使用RowDataBound.但另外,您也可以使用DataBound并遍历那里的每一行.除了在RowDataBound中保存foreach代码行之外,这两种方法都有任何优点/缺点吗?(表现还是其他?)
git ×4
asp.net-mvc ×2
c# ×2
github ×2
asp.net ×1
git-commit ×1
git-push ×1
gnupg ×1
gridview ×1
npm ×1
npm-install ×1
ssh ×1