小编Joh*_*and的帖子

替代.NET的Uri实现?

我有一个.NET的Uri实现的问题.似乎如果方案是"ftp",则查询部分不会被解析为Query,而是作为路径的一部分进行解析.

以下面的代码为例:

Uri testuri = new Uri("ftp://user:pass@localhost/?passive=true");
Console.WriteLine(testuri.Query); // Outputs an empty string
Console.WriteLine(testuri.AbsolutePath); // Outputs "/%3Fpassive=true"
Run Code Online (Sandbox Code Playgroud)

在我看来,Uri类错误地将查询部分解析为路径的一部分.但是将方案更改为http,结果如预期:

Uri testuri = new Uri("http://user:pass@localhost/?passive=true");
Console.WriteLine(testuri.Query); // Outputs "?passive=true"
Console.WriteLine(testuri.AbsolutePath); // Outputs "/"
Run Code Online (Sandbox Code Playgroud)

有没有人有这个解决方案,或知道一个按预期工作的替代Uri类?

.net c# ftp uri

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

C#P/Invoke结构问题

我正在尝试为C API(本机Win dll)编写一个C#P/Invoke包装器,通常这样可以正常工作.唯一的例外是将结构作为C代码中的参数的特定方法.在没有任何异常的情况下调用该函数,但它返回false,表示执行失败.

在API头文件中,涉及的方法和结构定义如下:

#define MAX_ICE_MS_TRACK_LENGTH  256
typedef struct tagTRACKDATA
{   
    UINT nLength;
    BYTE TrackData[MAX_ICE_MS_TRACK_LENGTH];
} TRACKDATA, FAR* LPTRACKDATA;
typedef const LPTRACKDATA LPCTRACKDATA;

BOOL ICEAPI EncodeMagstripe(HDC /*hDC*/,
             LPCTRACKDATA /*pTrack1*/,
             LPCTRACKDATA /*pTrack2*/,
             LPCTRACKDATA /*pTrack3*/,
             LPCTRACKDATA /*reserved*/);
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下代码创建C#P/Invoke包装器:

public const int MAX_ICE_MS_TRACK_LENGTH = 256;

[StructLayout(LayoutKind.Sequential)]
public class MSTrackData {
    public UInt32 nLength;
    public readonly Byte[] TrackData = new byte[MAX_ICE_MS_TRACK_LENGTH];
}

[DllImport("ICE_API.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool EncodeMagstripe(IntPtr hDC,
                    [In]ref MSTrackData pTrack1,
                    [In]ref MSTrackData pTrack2,
                    [In]ref MSTrackData pTrack3, …
Run Code Online (Sandbox Code Playgroud)

c# pinvoke struct

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

在C#中解密PKCS#7加密数据

我正在研究需要解密PKCS#7加密数据的解决方案,最好是在C#中.据我所知,.NET api通过System.Security.Cryptography.Pkcs命名空间支持这一点.但是,似乎实现只能在字节数组上工作.那么当我有一个不适合内存的大型加密文件时,我该怎么办?

我在这里遗漏了什么,或者是否有另一种方法在Stream级别而不是使用bytearrays?

.net c# encryption cryptography

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

标签 统计

c# ×3

.net ×2

cryptography ×1

encryption ×1

ftp ×1

pinvoke ×1

struct ×1

uri ×1