小编Ste*_*hen的帖子

存储网站密码盐的最佳位置在哪里?

我有两个盐,每个用户都有一个独特的盐,与数据库中的用户信息一起存储.第二种盐是网站特有的盐.两者都需要哈希密码.

问题是我不知道我应该在哪里保持我的网站盐.现在它驻留在运行散列算法的PHP方法中.我应该将它保存在/ var/www /之外的文件中并打开PHP并读取文件吗?我不想将它存储在数据库中,因为如果我的数据库受到损害,那将会破坏两种盐的目的.

有什么建议?

php security passwords storage salt

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

LINQ分组数据两次

为可怕的标题道歉,我不太确定如何说出我的问题.

我有一个看起来像这样的对象:

CustAcct cust = new CustAcct();
cust.Name = "John Doe";
cust.Account = "ABC123";
cust.OrderTotal = 123.43
cust.OrderQty = 4;
cust.TransDate = "12/26/2010 13:00"
Run Code Online (Sandbox Code Playgroud)

请不要花太多时间批评下一部分,因为这真的不涉及购物车/客户的东西,但想法是一样的,我只是想使用每个人都非常熟悉的东西.

一个帐户可以有多个客户,一个客户可以拥有多个帐户.

所以你有了:

List<CustAcct> custList = new List<CustAcct>();
custList.Add("John Doe", "ABC123", 123.43, 4, "12/26/2010 13:00");
custList.Add("John Doe", "ABC123", 32.12, 2, "12/27/2010 10:00");
custList.Add("John Doe", "ABC321", 43.34, 1, "12/28/2010 15:00");
custList.Add("John Doe", "ABC321", 54.60, 3, "12/28/2010 16:00");
custList.Add("Jane Zoe", "ABC123", 46.45, 2, "12/28/2010 17:00");
custList.Add("Jane Zoe", "ABC123", 32.65, 1, "12/29/2010 12:00");
custList.Add("Jane Zoe", "ABC321", 67.65, 3, "12/29/2010 …
Run Code Online (Sandbox Code Playgroud)

c# linq group-by

5
推荐指数
1
解决办法
2514
查看次数

跨线程使用引用的对象

我正在做的是创建一个对象(A),其中包含对另一个对象(B)的引用.我的代码的UI部分将这些对象(A)保存在BindingList中,该BindingList用作DevExpress网格视图的数据源.控制器通过事件将新创建的对象(A)发送到UI.控制器还有一个更新引用对象(B)的线程.抛出的异常来自DevExpress GridView并读取"检测到跨线程操作.要抑制此异常,请设置DevExpress.Data.CurrencyDataController.DisableThreadingProblemsDetection = true".

现在我不想压制此异常,因为代码最终会在关键应用程序中结束.

那么如何在不引起问题的情况下跨线程更新引用对象呢?这是我的Test应用程序的代码.它在实际程序中基本相同.

更新 UI中的错误由Nicholas Butler的答案修复,但现在异常已移至Employee类.我已更新代码以反映更改.

这是我的代码

*UI*

    public partial class Form1 : Form
{
    private BindingList<IEmployee> empList;
    EmployeeController controller;
    private delegate void AddEmployeInvoke(IEmployee employee);
    public Form1()
    {
        controller = new EmployeeController();
        controller.onNewEmployee += new EmployeeController.NewEmployee(controller_onNewEmployee);
        empList = new BindingList<IEmployee>();
        InitializeComponent();
    }

    void controller_onNewEmployee(IEmployee emp)
    {
        AddEmployee(emp);
    }

    private void AddEmployee(IEmployee empl)
    {
        if (InvokeRequired)
        {
            this.Invoke(new AddEmployeInvoke(AddEmployee), new Object[] {empl});
        }
        else
        {
             empList.Add(empl);
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.gridControl1.DataSource = …
Run Code Online (Sandbox Code Playgroud)

c# multithreading devexpress pass-by-reference

5
推荐指数
1
解决办法
2796
查看次数

绑定到DevExpress StockSeries2D图表

我正在尝试将ViewModel中的ObservableCollection数据绑定到View中的Devexpress 2D Stock Chart.我知道VM绑定了View的DataContext,因为我将窗口的Title绑定到VM中的属性,并且在运行程序时它是正确的.该集合被正确实例化,我可以看到所有对象都已创建,具有值,并被添加到集合中.

图表信息没有显示.该图表显示的不是应该绑定到它的信息.我猜它与我的XAML中的一行有关,但我只是不知道它是什么.

这是输出中的错误:

System.Windows.Data错误:40:BindingExpression路径错误:'对象'''ChartElementPanel'(Name ='')'上找不到'快照'属性.BindingExpression:路径= DataContext.Snapshots; DataItem ='ChartElementPanel'(Name =''); target元素是'StockSeries2D'(HashCode = 24500892); target属性是'DataSource'(类型'Object')

DevExpress版本是10.1.9

编辑:我想我知道问题出在哪里.StockSeries2D DataContext = DevExpress.Xpf.Charts.ChartElementPanel所以当我使用

DataSource="{Binding Path=DataContext.Snapshots}"
Run Code Online (Sandbox Code Playgroud)

它确实指向DevExpress.Xpf.Charts.ChartElementPanel,因为它不包含Snapshots属性,所以会引发错误.

XAML:

    <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="200" />
        <RowDefinition Height="50" />
    </Grid.RowDefinitions>
    <dxc:ChartControl Name="chartControl1">
        <dxc:ChartControl.Diagram>
            <dxc:XYDiagram2D>
                <dxc:XYDiagram2D.Series>
                    <dxc:StockSeries2D DataSource="{Binding DataContext.Snapshots}" HighValueDataMember="High" LowValueDataMember="Low" CloseValueDataMember="Last" ArgumentScaleType="DateTime" ArgumentDataMember="TimeStamp">

                        <dxc:StockSeries2D.PointOptions>
                            <dxc:PointOptions dxc:FinancialSeries2D.ValueToDisplay="HighValue" />
                        </dxc:StockSeries2D.PointOptions>

                        <dxc:StockSeries2D.Model>
                            <dxc:ArrowsStock2DModel />
                        </dxc:StockSeries2D.Model>
                    </dxc:StockSeries2D>
                </dxc:XYDiagram2D.Series>

                <!--Region #Axis X-->
                <dxc:XYDiagram2D.AxisX>
                    <dxc:AxisX2D>
                        <dxc:AxisX2D.DateTimeOptions>
                            <dxc:DateTimeOptions Format="ShortTime" />
                        </dxc:AxisX2D.DateTimeOptions>
                    </dxc:AxisX2D>
                </dxc:XYDiagram2D.AxisX>
                <!-- End Rgion -->

                <!-- region #AxisY -->
                <dxc:XYDiagram2D.AxisY>
                    <dxc:AxisY2D> …
Run Code Online (Sandbox Code Playgroud)

c# wpf binding devexpress mvvm

5
推荐指数
1
解决办法
4111
查看次数

Webpack:如何将 javascript 注入 HTML 而不是单独的 JS 文件

有没有办法让 webpack 将输出注入 HTML 而不是单独的文件?

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
      // webpack puts the output here
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript webpack webpack-4

5
推荐指数
1
解决办法
3830
查看次数

向 SurrealDB 发送 `create` RPC 消息返回“数据库出现问题:表不存在”错误

我正在调试 .NET SurrealDB 库的一些测试。我可以很好地打开与数据库的连接,但是当我create向数据库(docker 容器)发送 RPC 消息时,它会返回一个错误,内容为“数据库出现问题:表不存在”

TRACE tungstenite::protocol Received message {"id":"02B70C1AFE5D","async":true,"method":"create","params":["users",{"username":"john","password":"test123"}]}
...
16 13:46:45] DEBUG surrealdb::dbs Executing: CREATE $what CONTENT $data RETURN AFTER

surreal_1  | [2022-09-16 13:46:45] TRACE surrealdb::dbs Iterating: CREATE $what CONTENT $data RETURN AFTER
Run Code Online (Sandbox Code Playgroud)

code: -32000, message: "There was a problem with the database: The table does not exist"

知道为什么会发生这种情况吗?当然,该表不存在,因为我正在尝试创建它。Surreal代码中是否还有其他原因会返回这样的错误?

surrealdb surrealdb-rpc

5
推荐指数
1
解决办法
870
查看次数

获取按另一列分组的列的总和,然后将其分组到另一列

我已经尝试了一段时间来解决这个问题,但是我缺乏更高级的SQL技能让我筋疲力尽.

Executions(TradeDate, Symbol, Side, Price, Under, Account)

TEMP DATA:
2012-06-20, AAPL 120716C00600000, BUY, 3.25, AAPL, XYZ123
2012-06-20, AAPL 120716C00600000, SELL, 3.30, AAPL, XYZ123
2012-06-20, AAPL 120716C00600000, BUY, 3.25, AAPL, XYZ123
2012-06-20, AAPL 120716C00600000, SELL, 3.30, AAPL, XYZ123
2012-06-20, GRPN 120716C00027000, BUY, 2.25, GRPN, XYZ123
2012-06-20, GRPN 120716C00027000, SELL, 2.30, GRPN, XYZ123
2012-06-20, GRPN 120716C00027000, SELL, 2.30, GRPN, XYZ123
2012-06-20, GRPN 120716C00027000, BUY, 2.25, GRPN, XYZ123


-UNDER----Side(Buy)----Side(Sell)
 AAPL      6.50         6.60
 GRPN      4.50         4.60
Run Code Online (Sandbox Code Playgroud)

正如你所看到的那样,我试图获得每一面价格的总和,然后按下.

sql t-sql sql-server sql-server-2008 sql-server-2008-r2

4
推荐指数
1
解决办法
778
查看次数

C#Metro HttpClient未在PostAsync上接收cookie

我正在尝试使用.NET 4.5 HttpClient登录网站并接收cookie.我在离开试验之前就打破了,并检查了CookieContainer并且它不包含任何cookie.响应发回200状态.

private async void Login(string username, string password)
{
    try
    {
        Uri address = new Uri(@"http://website.com/login.php");
        CookieContainer cookieJar = new CookieContainer();
        HttpClientHandler handler = new HttpClientHandler()
        {
            CookieContainer = cookieJar
        };
        handler.UseCookies = true;
        handler.UseDefaultCredentials = false;
        HttpClient client = new HttpClient(handler as HttpMessageHandler)
        {
            BaseAddress = address
        };

        HttpContent content = new StringContent(string.Format("username={0}&password={1}&login=Login&keeplogged=1", username, password));
        HttpResponseMessage response = await client.PostAsync(client.BaseAddress, content);
    }
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这不起作用.当我尝试.NET 4风格时它工作正常.

c# microsoft-metro windows-8 .net-4.5 dotnet-httpclient

4
推荐指数
1
解决办法
5505
查看次数

使用CakeBuild XMLPoke更改节点的内部文本值

我无法弄清楚如何使用Cake中的XmlPoke来更改XML节点的内部文本值.我一直得到的错误是Error: Expression must evaluate to a node-set.

我的XML看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>This value must be set to your local path</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

build.cake看起来像这样

// Update the publish path in the pubxml
XmlPoke(publishProfile, "/Project/PropertyGroup/publishUrl/", buildPaths.PublishDirectory);

// The publishProfile is just the location of the XML file
// The buildPaths.PublishDirectory is the value I'm trying to set the inner text to
Run Code Online (Sandbox Code Playgroud)

c# xml msbuild xmlpoke cakebuild

4
推荐指数
1
解决办法
609
查看次数

如何在没有SynchronizationContext的情况下使用INotifyPropertyChanged进行线程安全?

如何让您的对象保持线程安全,实现INotifyPropertyChanged?我不能使用SynchronizationContext,因为我需要能够序列化对象.

    protected void OnPropertyChanged(string propertyName)
    {
        var handler = PropertyChanged;
        if (handler != null)
           // What can I add here to make it thread-safe? 
            handler(this, new PropertyChangedEventArgs(propertyName));
    }
Run Code Online (Sandbox Code Playgroud)

c# multithreading inotifypropertychanged

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