小编Dai*_*Dai的帖子

为什么这个交换工作而另一个不工作

我正在帮助我的朋友完成一项任务,因为我使用了C已经有一段时间了,所以我找不到为什么这样有效,但第一个代码有效,第二个代码没有.这不是因为我们想出来的任务,但我想知道为什么会发生这种情况.

void GnomeSort( int gnomes[], int length ) {

    int pos = 1;

    while ( pos < length ) {

        if ( gnomes[ pos ] >= gnomes[ pos - 1 ] ) {

            pos = pos + 1;
        }
        else {

            swap( gnomes + pos, gnomes + pos - 1 );
            if ( pos > 1 ) {

                pos = pos - 1;
            }
        }
    }
    return;
}
Run Code Online (Sandbox Code Playgroud)

这不起作用:

void GnomeSort( int gnomes[], int length ) {

    int pos = …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

3
推荐指数
1
解决办法
77
查看次数

在构造依赖项-或ngOnInit之前,如何使Angular 5等待Injectable的构造函数中使用的Promise解析?

我的Angular 5项目中有一个服务,其中包含一些配置状态:

@Injectable
export class FooService {

    isIncognito: boolean = null;

    constructor() {

        // I want Angular to wait for this to resolve (i.e. until `isIncognito != null`):
        FooService.isIncognitoWindow()
            .then( isIncognito => {

                this.isIncognito= isIncognito;
            } );
    }


    private static isIncognitoWindow(): Promise<boolean> {
    // /sf/ask/203655721/
    // https://developer.mozilla.org/en-US/docs/Web/API/LocalFileSystem

        return new Promise<boolean>( ( resolve, reject ) => {

            let rfs = window['requestFileSystem'] || window['webkitRequestFileSystem'];
            if( !rfs ) {
                console.warn( "window.RequestFileSystem not found." );
                resolve( false );
            }

            const typeTemporary = 0;
            const …
Run Code Online (Sandbox Code Playgroud)

promise angular

3
推荐指数
1
解决办法
1914
查看次数

是否可以根据另一个属性通知 C# 编译器另一个属性将是非空的?

假设我有一个这样的类:

public class BridgeFormModel
{
    [Required]
    [Display( Name = "What is your name?" )]
    public String? Name { get; set; }

    [Required]
    [Display( Name = "What is your quest?" )]
    public String? Quest { get; set; }

    [Required]
    [Display( Name = "What is your favourite colour?" )]
    public String? FaveColour { get; set; }

    [BindNever]
    public Boolean IsValid =>
        !String.IsNullOrWhiteSpace( this.Name ) && 
        !String.IsNullOrWhiteSpace( this.Quest ) && 
        !String.IsNullOrWhiteSpace( this.FaveColour );
}
Run Code Online (Sandbox Code Playgroud)

目前,C# 8.0 和 C# 9.0 编译器Name在知道IsValid …

c# nullable c#-8.0 nullable-reference-types c#-9.0

3
推荐指数
1
解决办法
96
查看次数

无法在 windows10 上使用 PS7 安装 Az powershell 模块

我是 Windows10 的管理员,并尝试按照此处的文档安装 Azure PS 模块。

PS C:\Program Files\PowerShell\7>Install-Module -Name Az -Scope CurrentUser -Force -Allowclobber

但是,我收到如下错误消息。

Install-Package: C:\program files\powershell\7\Modules\PowerShellGet\PSModule.psm1:9711
Line 9711 talledPackages = PackageManagement\Install-Package @PSBoundParameters
Run Code Online (Sandbox Code Playgroud)

安装或更新需要管理员权限。使用具有管理员权限的帐户登录计算机,然后重试,或通过-Scope CurrentUser在命令中添加“ ”进行安装。您还可以尝试使用提升的权限运行 Windows PowerShell 会话(以管理员身份运行)。

尽管我已经处于管理员权限模式,但它抛出此错误的原因是没有意义的。很少有其他答案要求设置使用 TLS 1.2,我也这样做了。就像这样:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Run Code Online (Sandbox Code Playgroud)

还有什么问题?

powershell azure azure-powershell

3
推荐指数
1
解决办法
1万
查看次数

从#tempTable插入表失败

我只是从表中获取数据并将其插入到#tempTable中然后删除数据,然后将其插回到表中.我得到"插入错误:列名称或提供的值的数量与表定义不匹配".错误.

这是我正在运行的线路.

SELECT * INTO #tempTable FROM dbo.ProductSales 

SELECT * FROM #tempTable

DELETE FROM dbo.ProductSales

INSERT INTO dbo.ProductSales SELECT * FROM #tempTable
Run Code Online (Sandbox Code Playgroud)

任何的想法?

sql-server select insert

2
推荐指数
1
解决办法
1万
查看次数

MVVM的控制器

我正在一个WPF项目中,该项目杂乱地隐藏在xaml / xaml.cs和一些不十分流行的ViewModels背后。

(免责声明:直到最近,我对WPF的了解还很少。我可以相当熟练地设计和布局Window或UserControl,我认为我可以将MVVM ViewModel与View分离并进行绑定。连线,但这是我目前使用WPF的经验限制。)

我的任务是向程序中添加一些新功能,以使看起来有必要先将其转换为正确使用MVVM。

我将展示我面临的一个具体问题:

我正在使用一个名为View的视图SettingsWindow.xaml。它是一组文本框,标签和诸如此类的东西。我已经将所有View数据剥离到一个ViewModel类似于以下内容的类中:

class SettingsViewModel : ViewModelBase {

    private String _outputDirectory;
    public String OutputDirectory {
        get { return _outputDirectory; }
        set { SetValue( () => this.OutputDirectory, ref _outputDirectory, value) ); }
    }

    // `SetValue` calls `PropertyChanged` and does other common-tasks.

    // Repeat for other properties, like "Int32 Timeout" and "Color FontColor"
}
Run Code Online (Sandbox Code Playgroud)

在原始的ViewModel类中,有2种方法:ReadFromRegistrySaveToRegistry。该ReadFromRegistry方法由ViewModel的构造函数SaveToRegistry调用,该方法由MainWindow.xaml.cs的代码隐藏调用,如下所示:

private void Settings_Click(Object sender, RoutedEventArgs e) {

    SettingsViewModel …
Run Code Online (Sandbox Code Playgroud)

wpf model-view-controller controller mvvm

2
推荐指数
1
解决办法
4604
查看次数

将 SessionStore (ITicketStore) 添加到我的应用程序 cookie 会使我的数据保护提供程序无法工作

tl;博士

  • 拥有 .NET Core 2.0 应用程序,该应用程序使用数据保护提供程序,该提供程序在我的域中的所有站点中保留一个密钥文件。
  • 工作正常,但是,应用程序 cookie 变得太大了。
  • 使用 ITicketStore 在 cookie 上实现了一个 SessionStore
  • Cookie 大小大大减少,但是,来自 DPP 的密钥不再在我的站点中持续存在。

我应该在我的 ITicketStore 实现中做些什么来解决这个问题?我假设是这样,因为这是出现问题的地方,但是,我无法弄清楚。

一些片段:


Startup.cs --> ConfigureServices()

var keysFolder = $@"c:\temp\_WebAppKeys\{_env.EnvironmentName.ToLower()}";
var protectionProvider = DataProtectionProvider.Create(new DirectoryInfo(keysFolder));
var dataProtector = protectionProvider.CreateProtector(
            "Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware",
            "Cookies",
            "v2");

--snip--

services.AddSingleton<ITicketStore, TicketStore>();

--snip--

services.AddDataProtection()
    .PersistKeysToFileSystem(new DirectoryInfo(keysFolder))
    .SetApplicationName("app_auth");

services.ConfigureApplicationCookie(options =>
{
    options.Cookie.Name = ".XAUTH";
    options.Cookie.Domain = ".domain.com";
    options.ExpireTimeSpan = TimeSpan.FromDays(7);
    options.LoginPath = "/Account/Login";
    options.DataProtectionProvider = protectionProvider;
    options.TicketDataFormat = new TicketDataFormat(dataProtector);
    options.CookieManager = new ChunkingCookieManager();
    options.SessionStore = services.BuildServiceProvider().GetService<ITicketStore>();
}); …
Run Code Online (Sandbox Code Playgroud)

asp.net cookies asp.net-core asp.net-core-2.0

2
推荐指数
2
解决办法
8106
查看次数

C# 10 .Net 6 MinBy MaxBy Linq 投影到单个属性

在 C# 10 .Net 6 中的newMinBy或调用之后是否有内联方式来投影属性?MaxBy

double topPriceInList = prices.MaxBy(h => h.High)."Select(h => h.High)";
Run Code Online (Sandbox Code Playgroud)

当然,Visual Studio 2021 不喜欢我尝试过的任何一个。

.net c# linq

2
推荐指数
1
解决办法
2636
查看次数

多个 JWT 的匹配哈希 JWT

我使用 bcryptjs 对用户的刷新令牌进行哈希处理,然后将其存储到数据库中。

当将散列字符串与 JWT 进行比较时,以下内容似乎总是评估为 true,我在https://bcrypt-generator.com/上也得到了相同的行为

例如,哈希值$2a$10$z4rwnyg.cVtP2SHt3lYj7.aGeAzonmmzbxqCzi2UW3SQj6famGaqW与以下两个 JWT 匹配

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NTZlODdkNi1jMmVkLTRmN2ItOTU2Zi00NDFhMWU1NjA2MmQiLCJpYXQiOjE2Mzk1OTg2MDIsImV4cCI6MTY0MjE5MDYwMn0.aJlzFHhBMGO4J7vlOudqOrOFnL1P-yEGrREgdaCXlxU

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NTZlODdkNi1jMmVkLTRmN2ItOTU2Zi00NDFhMWU1NjA2MmQiLCJpYXQiOjE2Mzk2MDY4ODgsImV4cCI6MTY0MjE5ODg4OH0.vo4HKLXuQbT0Yb0j21M4xl-rakxyE5wINjuGdkPuSJY

您也可以在网站上验证它们是否会产生“匹配”

  1. 转到https://bcrypt-generator.com/并打开浏览器控制台。

  2. 在控制台中输入这些行:

    > var jwt1 = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NTZlODdkNi1jMmVkLTRmN2ItOTU2Zi00NDFhMWU1NjA2MmQiLCJpYXQiOjE2Mzk1OTg2MDIsImV4cCI6MTY0MjE5MDYwMn0.aJlzFHhBMGO4J7vlOudqOrOFnL1P-yEGrREgdaCXlxU"
    < undefined
    
    > var jwt2 = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiI2NTZlODdkNi1jMmVkLTRmN2ItOTU2Zi00NDFhMWU1NjA2MmQiLCJpYXQiOjE2Mzk2MDY4ODgsImV4cCI6MTY0MjE5ODg4OH0.vo4HKLXuQbT0Yb0j21M4xl-rakxyE5wINjuGdkPuSJY"
    < undefined
    
    > var h = "$2a$10$z4rwnyg.cVtP2SHt3lYj7.aGeAzonmmzbxqCzi2UW3SQj6famGaqW"
    < undefined
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后将这些行输入控制台,观察它们如何返回true

    > bcrypt.compareSync(jwt1, h)
    < true
    > bcrypt.compareSync(jwt2, h)
    < true
    
    Run Code Online (Sandbox Code Playgroud)

这是我自己的 JS 代码,它也重现了哈希匹配:

// Login Logic

const refresh_token: string = jwt.sign({ userId }, authSecrets.refresh_secret, { expiresIn: '30d' });

const hash_refresh = bcrypt.hashSync(refresh_token);

await UserModel.update({
    id: user.id, …
Run Code Online (Sandbox Code Playgroud)

hash bcrypt jwt bcryptjs

2
推荐指数
1
解决办法
510
查看次数

如何在某些区域制作单行文本概述,而在其他区域制作实心填充?

我最近遇到了带有空心/填充文本的运球/登陆页面概念

在此输入图像描述

首先,我不完全确定这个概念是否可以在 CSS 中重新创建。谷歌确实让我找到了 CSS 文本蒙版,但我找不到任何可以真正重现这种效果的帖子。

我如何能够重建空心/填充文本,具体取决于文本后面的背景是否有图像?

css css-mask

2
推荐指数
1
解决办法
190
查看次数