小编Nat*_*ate的帖子

当重定向未知时为 HttpWebRequest.Credentials 构建 CredentialCache

我最近问了一个有关服务器返回重定向时的 NetworkCredential 和 HttpWebRequest.Credentials 的问题。我确定构建 NetworkCredential 实例的 CredentialCache 适用于我的场景。现在我有一个临时方法,可以构建一个 CredentialCache,其中所有域名都硬编码在其中。它有效,这很棒。

        CredentialCache cache = new CredentialCache();
        cache.Add(new Uri("http://example.com"), "Negotiate", loginCredentials);
        cache.Add(new Uri("http://redirected.example.com"), "Negotiate", loginCredentials);
        request.Credentials = cache;
Run Code Online (Sandbox Code Playgroud)

现在,我需要使其更加灵活。重定向的整个想法是为了服务器上的负载平衡。在调用 HttpWebRequest.GetResponse() 之前,客户端不会确切知道它将被重定向到哪里。构建 CredentialCache 以包含遇到的每个重定向服务器的首选方法是什么?另外,造成如此困难的原因是什么?为什么单个 NetworkCredentials 实例不能满足每个重定向的 HttpWebRequest.Credentials ?跨重定向重用凭据是否会引入安全漏洞?

谢谢。

.net c# authentication redirect

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

为什么我的SHA256总和不同?

我正在使用glib来生成SHA256校验和.它似乎工作正常,但当我使用sha256sum验证输出时,我得到了不同的结果.有什么想法发生了什么?

char* createChecksumString(const char* buffer) {
    //Create SHA256 checksum using glib
    gchar* checksum = g_compute_checksum_for_string(G_CHECKSUM_SHA256,
        buffer, -1);

    printf("%s\n", buffer);
    printf("%s\n", checksum);

    .
    .
    .
}

.
.
.

const char* msg = "Hello SHA256";
char* checksum = createChecksumString(msg);
Run Code Online (Sandbox Code Playgroud)

上面的代码产生:

你好SHA256

70725d0f78cb0967c0e5171f733619712d239e28f2d279e4b3c3ed97f7456fa3

sha256sum产生不同的输出.见下文:

echo"Hello SHA256"| sha256sum

e32bd03f46f51d4a5c903429fea1c31032d8d7aa689c764141b7cebd74f4e140

c checksum glib

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

使用DependencyProperty进行可见性绑定

我在下面的一些简单代码中使用了ToggleButton.IsChecked属性来设置TextBlock的可见性.它工作正常.由于这不适合我的程序结构,我试图将另一个TextBlock的可见性绑定到"this"的DependencyProperty.编译很好,但没有效果.我做错了什么,只是不确定是什么.

XAML

<Window x:Class="ToggleButtonTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Width="200" Height="100">
<Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Window.Resources>
<StackPanel>
    <ToggleButton x:Name="toggleButton" Content="Toggle"
                  IsChecked="True" Checked="toggleButton_Checked"/>
    <TextBlock Text="Some Text"
               Visibility="{Binding IsChecked, 
               ElementName=toggleButton,
               Converter={StaticResource BooleanToVisibilityConverter}}"/>
    <TextBlock Text="More Text"
               Visibility="{Binding ShowMoreText, 
               ElementName=this, 
               Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

C#

using System.Windows;

namespace ToggleButtonTest
{
    public partial class MainWindow : Window
    {
        static MainWindow()
        {
            FrameworkPropertyMetadata meta = 
                new FrameworkPropertyMetadata(true,
                FrameworkPropertyMetadataOptions.BindsTwoWayByDefault);

            ShowMoreTextProperty = 
                DependencyProperty.Register("ShowMoreText", 
                typeof(bool), typeof(MainWindow), meta);
        }

        public MainWindow()
        {
            InitializeComponent();
        }

        public static readonly DependencyProperty ShowMoreTextProperty;
        public bool ShowMoreText
        { …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf dependency-properties

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

选择正确的ItemsSource容器

我有一个UserControl,我写的是从自定义对象中显示一些属性.这些对象有多个实例,因此我有一个ObservableCollection,所以我可以将它们设置为与ListView的ItemsSource绑定.现在,我可以在ListView中为我的类的每个实例显示此UserControl的实例.

问题是我真的不想要ListView的行为.我不希望用户能够选择整个UserControl.实际上,用户应该能够在UserControl中选择单个元素.

我想过只使用StackPanel来放入这些UserControl,但它没有ItemesSource属性.是否有一种简单的方法可以实现这一目标?

c# wpf xaml itemssource

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

使用char*ch vs char*ch的理由是什么

我最常见的是使用指针旁边的变量名而不是类型的代码.

我原本更喜欢后面的(·char*ch·)因为对我来说更有意义的是我将类型声明为字符指针而只是命名变量.

也就是说,如果有很多人从另一个方面看到它,我觉得我必须遗漏一些东西.有哪些其他方式可以提供更多意义?

c pointers coding-style

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