小编Roe*_*den的帖子

多个OAuth提供商的单一帐户(Facebook,Google,Windows Live)?

我有一个Web应用程序,允许通过Facebook,GoogleWindows Live进行注册和身份验证.每个OAuth请求都具有从身份验证提供程序检索关联电子邮件地址所需的范围.

当前情况是基于提供者和提供的标识符创建帐户.这意味着如果用户已使用多个提供程序登录,则用户将在Web应用程序上拥有多个帐户.

即使使用多个提供商,我也希望拥有一个单一帐户理想情况.我正在考虑使用电子邮件地址来查看用户是否存在帐户.如果存在,请使用基于电子邮件地址的帐户.

这有多安全可靠?所有OAuth提供商都提到验证电子邮件地址吗?更好的方法?

编辑:跑了测试,想出了这个.还在寻找进一步的建议:)

FaceBook: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated.
Google: Provides `verified_email`. Additional e-mail will not appear until validated.
Windows Live: Cannot authenticate with unvalidated e-mail. Additional e-mail will not appear until validated.
Run Code Online (Sandbox Code Playgroud)

authentication facebook oauth

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

具有流/分块传输的Windows WebDAV客户端

我已经实现了一个非常小的概念验证,支持WebDAV协议的一部分.这包括OPTIONS,PROPFINDGETHTTP谓词.因此,内置的Windows WebDAV客户端(在Windows 8.1上)可以打开WebDAV共享,列出文件和目录,并浏览这些内容.

GETHTTP动词实现提供了Accept-Ranges(如字节), Content-Length,Content-TypeTransfer-Encoding(如分块).在浏览器中打开大型视频文件时,它会在下载剩余内容时立即开始播放.Windows的内置WebDAV客户端似乎在将媒体播放器播放文件之前将整个文件下载到临时位置.当一个文件是10GB时,这很糟糕.

有没有办法提供支持,以便内置的WebDAV客户端可以读取流量范围的字节范围(我想它只需要转换为使用Range某种方式...)?

windows webdav http

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

TypeScript discriminating union - discrimating属性类型的参数

我有以下定义:

interface Dog {
  bark(): void;
  type: 'dog';
}

interface Cat {
  meow(): void;
  type: 'cat';
}

type Animal = Cat | Dog;
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个Animal.type用作参数的函数:

function useAnimalType(type: string) {}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我使用过string,但我的意思是'cat' | 'dog'.我意识到我可以写出所有可能typeAnimal,但想象一下当有数百种动物类型被定义时的情景Animal.我如何Animal.type在这里重用参数?

typescript

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

VS2013与ReSharper 8.2无法识别代码合同?

我有以下软件:

  • Visual Studio 2013 Update 2
  • 代码合约(1.6.60617.15)
  • ReSharper C#版(8.2.0.2160)
  • ReSharper代码合同(1.0.0.0)

当我用代码契约打开一个方法时,ReSharper对合同感到困惑:

在此输入图像描述

它警告我chapter可以为空,即使合同要求它不是.也:

在此输入图像描述

合同不变方法被标记为never used.技术上是正确的,但它不应该告诉我,因为代码合同重写器使用该方法来获取有关每个不变量的信息.我如何教授ReSharper关于代码合同以纠正这两个问题?

c# ide resharper code-contracts visual-studio-2013

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

为什么通过锁内的数组进行foreach迭代的屈服会使VS2010编译器崩溃?

与Visual Studio 2010中使用的C#/.NET编译器相关的问题:在项目开发期间,一位同事遇到了VS2010编译器在使用锁内现有代码时崩溃的情况.我们逐行分开代码,最终得出结论,在锁定语句中使用yield return内部a foreach到数组会使编译器崩溃.可以使用以下代码重现该问题:

using System;
using System.Collections.Generic;

namespace PlayGround
{
    public static class Program
    {
        private static readonly object SyncRoot = new object();

        private static IEnumerable<int> EnumerableWithLock()
        {
            lock (SyncRoot)
            {
                foreach (var i in new int[1])
                {
                    yield return i;
                }
            }
        }

        public static void Main()
        {
            foreach (var i in EnumerableWithLock())
            {
                Console.WriteLine(i);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们继续在Visual Studio 2013上测试这个复制样本,但它没有出现同样的问题.此编译器问题似乎与VS2010中使用的编译器有关,并且在VS2012中可能会或可能不会出现相同的问题(我们无法访问它以进行测试).此外,我们测试过使用常规for循环不会崩溃.因此问题是,为什么VS2010编译器会崩溃?这是多么令人困惑的事情呢?

(是的,这主要是为了了解编译器而感兴趣的问题)

.net c# compiler-construction visual-studio-2010

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

HTML选择元素上的Cordova/UWP Windows Mobile 10访问冲突

Visual Studio 2015 Update 3中,我创建了一个JavaScript -> Windows -> Windows 8 -> Windows Phone -> Blank App (Windows Phone)项目.然后我改变了default.html包含这样的<select>元素:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>App1</title>

    <!-- WinJS references -->
    <!-- At runtime, ui-themed.css resolves to ui-themed.theme-light.css or ui-themed.theme-dark.css 
    based on the user’s theme setting. This is part of the MRT resource loading functionality. -->
    <link href="/css/ui-themed.css" rel="stylesheet" />
    <script src="//Microsoft.Phone.WinJS.2.1/js/base.js"></script>
    <script src="//Microsoft.Phone.WinJS.2.1/js/ui.js"></script>

    <!-- App1 references -->
    <link href="/css/default.css" rel="stylesheet" />
    <script …
Run Code Online (Sandbox Code Playgroud)

javascript cordova windows-10-mobile uwp

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

使用NancyFX自托管进行分块压缩响应

我有一个系统应该写入HTTP响应流的行.此系统中的每一行代表某种事件,因此您可以将其视为通知流.我在Windows 7上使用.NET4使用NancyFX和Nancy自托管(0.23).以下代码功能正常:

using System;
using System.IO;
using System.Threading;
using Nancy;
using Nancy.Hosting.Self;

namespace TestNancy
{
    public class ChunkedResponse : Response
    {
        public ChunkedResponse()
        {
            ContentType = "text/html; charset=utf-8";
            Contents = stream =>
            {
                using (var streamWriter = new StreamWriter(stream))
                {
                    while (true)
                    {
                        streamWriter.WriteLine("Hello");
                        streamWriter.Flush();
                        Thread.Sleep(1000);
                    }
                }
            };
        }
    }

    public class HomeModule : NancyModule
    {
        public HomeModule()
        {
            Get["/"] = args => new ChunkedResponse();
        }
    }

    public class Program
    {
        public static void Main()
        {
            using (var host …
Run Code Online (Sandbox Code Playgroud)

.net c# hosting http nancy

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

反向TypeScript类型Guard

我使用typescript 2.0.0--strictNullChecks和以下类型的后卫:

function isNotOk(value: any): value is null | undefined {
  if (typeof value === 'number') {
    return !isFinite(value);
  } else {
    return value === null || value === undefined;
  }
}
Run Code Online (Sandbox Code Playgroud)

其无效null,undefined,NaNInfinite.我想要反过来:

export function isOk(value: any): value is not null | undefined {
  return !isNotOk(value);
}
Run Code Online (Sandbox Code Playgroud)

当然,这种语法不起作用.有没有一种已知的方法来实现这一目标?

javascript typescript typescript2.0

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

从C#写入MATLAB的行

我想在C#方法的MATLAB命令窗口中写一行.这是.NET代码:

using System;

namespace SharpLab {
    public class Test {
        public void Run() {
            dynamic Matlab = Activator.CreateInstance(Type.GetTypeFromProgID("Matlab.Application"));
            Matlab.Execute("clc"); // This line does work.
            Matlab.Execute("disp('Hello world!')"); // This line does not work.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我加载库,创建一个类实例并运行该方法.这是MATLAB代码:

disp('This message goes to the command window. Can .NET call clc?');
NET.addAssembly('SharpLab.dll');
Test = SharpLab.Test;
Test.Run();
Run Code Online (Sandbox Code Playgroud)

这确实运行,命令窗口由clc清除.第二个电话,"Hello world!",不起作用.

如何在MATLAB命令窗口中打印来自C#的消息?

编辑:我收到一条链接到http://www.mathworks.nl/support/solutions/en/data/1-C9Y0IJ/index.html?product=SL&solut=的消息.此解决方案将所有写入的信息收集到要使用的变量中,但是我正在运行的实际功能大约需要一分钟,其间有很多消息.在扔墙壁之前等待一分钟并不是我所追求的.

c# matlab

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

使用 XMLHttpRequest 处理内存高效的消息块

我有一个XMLHttpRequestprogress被请求分块网页,其中不断地发送消息,添加了大块事件处理程序。如果我没有设置 a responseType,我可以在每个事件中访问 的response属性并处理额外的消息块。这种方法的问题是浏览器必须将整个响应保存在内存中,最终浏览器会因为这种内存浪费而崩溃。XMLHttpRequestprogress

所以,我尝试了一个responseTypearraybuffer希望可以对缓冲区进行切片,防止之前过多的内存浪费。不幸的是,此时progress事件处理程序不再能够读取 的response属性XMLHttpRequest。事件的事件参数progress也不包含缓冲区。这是我在这方面的尝试的一个简短的、独立的示例(这是为 编写的node.js):

var http = require('http');

// -- The server.

http.createServer(function(req, res) {
  if (req.url === '/stream') return serverStream(res);
  serverMain(res);
}).listen(3000);

// -- The server functions to send a HTML page with the client code, or a stream.

function serverMain(res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('<html><body>Hello World</body><script>');
  res.end(client.toString() + ';client();</script></html>');
}

function serverStream(res) …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest stream node.js

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