我正在尝试读取原始磁盘。我已经成功打开驱动器并获得了有效的句柄(CreateFile),将该句柄的偏移量设置为零(SetFilePointerEx),并将数据读取到缓冲区Byte[](ReadFile)。到目前为止,一切都很好。但是由于某种未知的原因,当我将缓冲区(花一点时间来实际弄清楚)与第三者实用程序(Disk Investigator)显示的内容进行比较时。它不包含启动信息(跳转指令),但包含正确的磁盘数据,但从偏移量85 = 0x55开始。因此,在卷启动信息中间。
这是为什么?有什么东西,我想念(显然是)吗?
系统:Windows 8(在VmWare工作站中)
码:
// moves the pointer to a given offset
Int64 offset = 0;
Int64 newOffset;
Int32 bufferSize = (Int32) clusterSizeInBytes;
SetFilePointerEx(driveHandle.Handle, offset, out newOffset, WinMoveMethod.Begin);
Int32 error = Marshal.GetLastWin32Error();
// reads the raw buffer
Int32 numberOfBytesRead;
rawData = new Byte[bufferSize];
Boolean result = ReadFile(driveHandle.Handle, rawData, bufferSize,
out numberOfBytesRead, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)
CreateFile(在其他位置)
driveHandle = CreateFile("\\.\PhysicalDrive1", WinFileAccessMode.GenericRead,
WinFileSharedAccess.All, IntPtr.Zero, WinFileMode.OpenExisting,
WinFileAttribute.None, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)
PInvoke方法:
[DllImport("kernel32.dll", …Run Code Online (Sandbox Code Playgroud) 我能够从ACS中配置的各种身份提供程序中检索,解码安全令牌(SWT).现在我应该 - 根据例子 - 能够做到这一点:
String headerValue = string.Format("WRAP access_token=\"{0}\"", securityToken);
WebClient client = new WebClient();
client.Headers.Add("Authorization", headerValue);
using (Stream stream = client.OpenRead(@"http://xxx.cloudapp.net/xxx.svc/users"))
using (StreamReader reader = new StreamReader(stream))
{
String response = reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
从某种意义上说,它适用于不存在的端点,例如.因此服务在那里(安全),服务器端的令牌模块和令牌验证器被调用,并且令牌通过.所以不是那样的.但无论如何问题是响应包含登录页面的HTML(其中包含身份提供者列表).看起来好像令牌验证没问题,但仍然不够安全.
我现在该怎么做才能从服务中接收我的数据?任何提示?
场景:http://tinyurl.com/WcfRestSaml
更新:我已经包含了我想要实现的场景图片的链接.
更新2:好的,我已切换到Saml2,但发生了同样的错误.然后我发现我需要断言来接收访问令牌.所以我做了:
WebClient client = new WebClient { BaseAddress = string.Format("https://{namespace}.accesscontrol.windows.net") };
NameValueCollection parameters = new NameValueCollection
{
{ "wrap_assertion_format", "SAML" },
{ "wrap_assertion", securityToken },
{ "wrap_scope", "http://{our}.cloudapp.net/" }
};
Byte[] responseBytes = client.UploadValues("WRAPv0.9", …Run Code Online (Sandbox Code Playgroud) 我在互联网上搜索过,也许我遗漏了一些正确的关键字,但我没有找到类似的东西。我只找到了不完全是图形的折线(或只是线)。我想生成一个图形轮廓(半径r),如图所示。有什么已经可用的吗?我想避免重新发明轮子可以这么说。

如果有人可以暗示我某些事情或至少是一些基本原则如何去做,那将是很棒的。否则我当然会自己“发明”一个。
最好在 C# 中。
更新:我需要计算轮廓多边形,而不仅仅是在视觉上绘制它。绿点表示生成的多边形。“内部”孔也被完全忽略。只有一个轮廓多边形就足够了。
更新 2:更好的图片来展示一些更极端的情况。此外,图的边缘永远不会重叠,因此无需对此进行调整。
更新 3:图片再次更新以反映斜面连接。