小编Sam*_*eer的帖子

如何在不继承 TableEntity 或实现 ITableEntity 的情况下创建自定义实体

是否可以在不实现 ITableEntity 或从 TableEntity 继承的情况下创建自定义实体?

如果我正在实施 ITableEntity,那么它会迫使我实施一些我不想实施的其他方法。

如果我从 TableEntity 继承我的自定义实体,那么我需要在将它传递给表操作之前对其进行更新,这会引入无法模拟的直接依赖关系,并且我的控制器类变得不可测试。

我想要做的就是创建我的自定义实体并保存在 Azure 表存储中。

azure azure-storage azure-table-storage

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

使用OkHttp下载损坏的文件

我写下载文件的方法总是会产生损坏的文件.

public static String okDownloadToFileSync(final String link, final String fileName, final boolean temp, DownloadStatusManager statusManager, ErrorDisplayerInterface errorDisplayerInterface) {

    Request request = new Request.Builder()
            .url(link)
            .build();


    OkHttpClient client = Api.getInstance().getOkHttpClient();
    OutputStream output = null;
    InputStream input = null;

    try {

        Response response = client.newCall(request).execute();

        //Add the file length to the statusManager
        final int contentLength = Integer.parseInt(response.header("Content-Length"));
        if (statusManager != null) {
            statusManager.add(Hash.md5(link), contentLength);
        }

        //Get content type to know extension
        final String contentType = response.header("Content-Type");
        final String ext = contentTypeMap.get(contentType);

        Log.i(TAG, …
Run Code Online (Sandbox Code Playgroud)

java android download okhttp okhttp3

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

如何从 c# 代码生成 Azure 表服务 SAS 令牌?

我想从 C# 代码生成 Azure 表服务的 SAS 令牌。我从门户网站生成了一个看起来像

?sv=2016-05-31&ss=t&srt=sco&sp=rwdlacu&se=2017-03-23T20:05:14Z&st=2017-03-23T12:05:14Z&sip={MY_IP}&spr=https&sig=fL9GNAZqybSlQKWvaspwr%2FrFFtWO%2F5jVgFu1Ayu94Ic%3D
Run Code Online (Sandbox Code Playgroud)

如何从 c# 代码生成这种令牌?如果有任何教程,请将我重定向到它。我尝试了下面的方法,但生成的令牌无效。

更新代码

我仍然收到错误403 Forbidden。我计算签名的代码是否正确?

var StringToSign = "{Storage_account_name}" + "\n" +
                            "rwdlacu" + "\n" +
                            "t" + "\n" +
                            "sco" + "\n" +
                            "2017-03-24T12:05:14Z" + "\n" +
                            "2017-03-24T20:05:14Z" + "\n" +
                            "{IP}" + "\n" +
                            "https" + "\n" +
                            "2016-05-31" + "\n";
string encodedString = HttpUtility.UrlEncode(StringToSign);
HMACSHA256 hmac = new HMACSHA256(Convert.FromBase64String("accountkey"));
var signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(encodedString)));
Run Code Online (Sandbox Code Playgroud)

c# azure azure-table-storage

5
推荐指数
2
解决办法
4055
查看次数

我应该如何将加密的用户数据存储在我的服务器上,并仅将其提供给正确的用户?

假设我必须存储用户的敏感数据,这些数据可选择在客户端加密.

  • 加密(可选)应使用用户的密码完成.
  • 用户登录(可选)应使用用户密码完成.

注意:
明文密码不存储在服务器上或通过网络传输.

我的选择和缺点:

1.无身份验证,客户端授权:
服务器将数据提供给每个人,但只有原始用户才有解码的方法.任何人
都可以使用数据来破解加密 - 而不是保护加密的最佳方法.

2.服务器端身份验证,无授权:
服务器存储用户密码以访问数据,并仅向可提供正确密码的用户提供数据.
用户不信任网络在没有加密的情况下传输数据.

3.身份验证和授权:
服务器存储用户密码以访问加密数据,加密使用与用户密码不同的密码完成.
安全性很好,但用户不想记住两个密码.

4.身份验证与授权: 服务器存储用户密码以访问加密数据,加密使用相同的密码完成.
用户很高兴.一些安全问题.

我更喜欢最新的第四个选项,但我担心的是:
如果服务器受到损害怎么办?如何确保加密密码和加密数据不能一起用来打破加密呢?如何才能更难打破加密?

一些想法:

  • 对密码和数据使用不同的加密算法.
  • 在加密之前将固定字符串添加到用户密码的末尾.
  • 将用户的密码填充一段时间.

编辑:

系统应该非常类似于应该从各方面保护的备份系统:服务器不应该能够读取数据,只有原始客户端应该能够访问数据,并且应该防止中间人攻击.因此,如果有人破解服务器身份验证或客户端加密,则不应泄露数据.

它应该是基于Web的,因此应该使用HTTPS阻止中间人攻击.

为防止服务器黑客泄露数据,数据在客户端加密.

为防止客户端加密篡改,应在服务器端使用一些登录和密码或令牌(可能是唯一的URL)来保护对数据的访问.

security authentication encryption passwords authorization

4
推荐指数
2
解决办法
902
查看次数

将单元测试循环运行是不好的做法吗?

我正在使用nunit在C#中编写一些单元测试.请考虑以下代码:

    [Test ()]
    public void TestCarCost () {
        for (int i = 0; i < Examples.exampleCount; i++) {
            Car car = new Car(Examples[i]);
            Assert.AreEqual (car.getCost (), Examples[i].cost, "Test " + (i + 1) + " failed");
        }
    }
Run Code Online (Sandbox Code Playgroud)

假设Examples是一个带有一些静态数据的类,用于测试汽车类型的不同可能输入,你可以看到我试图测试car.getCost()函数中的任何错误.现在在循环中使用它会在某种程度上感觉不对,因为例如当任何断言失败时它总是会将您发送到同一行代码.此外,据我所知,只要[Test()]中的断言失败,nunit会立即终止其余的测试代码.这意味着如果我在循环中拥有所有内容并且断言nr 1失败,我不会看到其他断言是否失败.明确地编写所有测试本质上是编写copypeasted代码,所以它也感觉不对.在这种情况下,什么是良好做法?是否可以在单元测试中使用大量类似的代码?我缺少一些优雅的解决方案吗?

c# nunit unit-testing

4
推荐指数
2
解决办法
1117
查看次数

https在默认的ASP.NET MVC上

我有ASP.NET MVC网络应用程序.

当我在Azure网络应用程序上传它时,网站有 http://

https://总是需要它.

我怎样才能做到这一点?

我知道这可能是一个过于宽泛的问题,但你能给我一些建议吗?

在此输入图像描述

我在我的项目中设置了这样的属性

c# asp.net asp.net-mvc azure azure-web-sites

4
推荐指数
2
解决办法
5645
查看次数

“Async”关键字是使 NLog 日志记录异步的唯一要求吗?

我正在写入目标数据库。在我的目标部分,我已将 async 标记为 true。我是否仍然需要向我的 Web 服务编写代码以使日志记录异步或框架负责处理它?

<targets async="true">
Run Code Online (Sandbox Code Playgroud)

.net c# wcf asynchronous nlog

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

断开连接:没有可用的受支持的身份验证方法(服务器发送公钥)

一个月前我收到了一台新笔记本电脑,配置了 Git 和 TortoiseGit,一切正常。直到我不得不重新启动笔记本电脑。我让它进入睡眠状态,但某些 Windows 更新需要重新启动。

重启后,使用 TortoiseGit pull 在主题中抛出消息。

Windows 7 + TortoiseGit 2.5

我的 Git Bash 工作正常。我可以克隆、拉、推。没有问题。

阅读断开连接:没有可用的受支持的身份验证方法(服务器发送:publickey),我尝试了很多事情,包括创建 .profile,在 Pageant 中添加密钥。

我试图将 C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe 更改为 ssh.exe,但 TortoiseGit 不允许我这样做。Config 字段已启用,我可以在那里输入,但 OK 和 Apply 都不使用此更改。我已经在 TortoiseGit 2.5 上卸载并安装了 - 仍然没有运气。

在我的环境中,Putty 密钥放置在网络驱动器上。我被告知要重新启动,以防出现问题。我看到我的网络驱动器很好,我已经重新启动了几次 - 以防万一。

同样,我的 Git Bash 仍然可以正常工作。

还有什么需要考虑的吗?

git tortoisegit

4
推荐指数
2
解决办法
4916
查看次数

在VSTS中,如何锁定主分支,以便没有人可以提交给它,但可以合并来自其他分支的拉取请求?

我想在我的master分支机构执行一项特定的政策。在VSTS中,如何锁定主分支,以便没有人可以提交给它,但可以合并来自其他分支的拉取请求?

azure-devops

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

Azure 应用服务 - VNet 集成、专用终结点与混合连接

我有一个在 Azure 应用服务中运行的 .NET Web API。它需要连接到在我的本地服务器上运行的 RabbitMQ 服务。我应该如何在 Azure 应用服务和 RabbitMQ 服务端口之间建立连接?

对于此更改,我是否需要在防火墙中将 Azure 应用服务的出站 IP 地址列入白名单?

azure azure-web-app-service

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