小编goo*_*ate的帖子

C#泛型:如果T是返回类型,它也可以是无效的吗?如何将这些接口组合在一起?

我有以下接口,使用回调返回类型T的泛型参数...

public interface IDoWork<T>
{
    T DoWork();
}
Run Code Online (Sandbox Code Playgroud)

但是我也有以下接口,但它不会调用回调,因为它返回void.

public interface IDoWork
{
    void DoWork();
}
Run Code Online (Sandbox Code Playgroud)

我可以组合这两个接口并使用运行时逻辑来确定差异吗?我怎样才能做到这一点?

c# generics api api-design nul

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

Interlocked.CompareExchange <Int>使用GreaterThan或LessThan而不是相等

System.Threading.Interlocked对象允许加法(减法)和比较作为原子操作.似乎只是不做相等的CompareExchange以及作为原子比较的GreaterThan/LessThan将是非常有价值的.

Interlocked.GreaterThanIL 的假设特征还是CPU级功能?都?

缺少任何其他选项,是否可以用C++或直接IL代码创建这样的功能并将该功能公开给C#?

c# c++ il interlocked interlocked-increment

22
推荐指数
3
解决办法
7463
查看次数

在HTTP GET中使用MVC3的AntiForgeryToken来避免Javascript CSRF漏洞

关于这个Haacked博客,我对于实施提议的反JSON GET劫持解决方案犹豫不决

  1. 减轻JSON劫持的推荐解决方案涉及到GET数据的非REST完整JSON POST

  2. 备用解决方案(对象包装)导致第三方控件出现问题,我没有源代码访问权限.

  3. 我找不到一个社区审查的实现,它实现了如何组成安全令牌或在网页中安全地传递安全令牌的替代解决方案(如下所列).我也不会声称只有专家来推动我自己的实施.

  4. 不能依赖推荐人标题

背景

此博客描述了有关JSON劫持的CSRF问题,并建议使用JSON POST来获取数据.由于使用HTTP POST来获取GET数据并不是非常REST,我会寻找一个更多的RESTfull解决方案,它可以在每个会话或每页上启用REST操作.

另一种缓解技术是将JSON数据包装在对象中,如此处所述.我担心这可能会延迟这个问题,直到找到另一种技术.

替代实施

对我来说,使用jQuery HTTP GET为我的JSON 扩展使用ASP.NET MVC的AntiForgeryToken似乎很自然.

例如,如果我获取一些敏感数据,根据上面的Haacked链接,以下代码容易受到攻击:

$.getJSON('[url]', { [parameters] }, function(json) {
    // callback function code
});
Run Code Online (Sandbox Code Playgroud)

我同意使用推荐的POST解决方法来获取数据不是RESTfull.我的想法是在URL中发送验证令牌.这样,CSRF式攻击者就不会知道完整的URL.缓存或不缓存,他们将无法获取数据.

下面是两个如何完成JSON GET查询的示例.我不确定哪种实现最有效,但可能猜测第一种实现更安全,因为错误的代理缓存了这些数据,因此容易受到攻击者的攻击.

HTTP://本地主机:54607 /首页/ AdminBalances/ENCODEDTOKEN-TOKEN-HERE

要么

HTTP://本地主机:54607 /首页/ AdminBalances ENCODEDTOKEN-TOKEN-这里?

...也许是MVC3的AntiForgeryToken,或者是变种(见swt).此标记将设置为上面选择的任何URL格式的内联值.

示例问题阻止我推出自己的解决方案

  1. 什么URL格式(上图),你会用它来验证JSON GET(斜杠,问号等)将代理来响应通过http://本地主机:54607 /首页/ AdminBalancesHTTP://本地主机:54607 /首页/ AdminBalances? ENCODEDTOKEN-TOKEN-HERE数据?

  2. 您如何将该编码令牌传递到网页?内联,还是作为页面变量?

  3. 你会如何撰写令牌?内置AntiforgeryToken还是通过其他方式?

  4. AntiForgeryToken使用cookie.在这种情况下是否会使用/需要支持cookie?仅HTTP?SSL只与HTTP配合使用?

  5. 您将如何设置缓存标头?Google Web Accelerator的任何特殊功能(例如)

  6. 只是使JSON请求SSL有什么含义?

  7. 为了安全起见,返回的JSON数组是否仍然包装在对象中?

  8. 该解决方案将如何与Microsoft提出的模板和数据绑定功能互操作

上面提出的问题是我自己没有提前做这件事的原因.更不用说可能还有更多我没有想到的问题,但却存在风险.

json csrf antiforgerytoken asp.net-mvc-3

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

如何托管Powershell脚本或应用程序,以便可以通过WSManConnectionInfo访问它?(如Office 365)

我知道连接到远程运行空间的唯一方法包括以下参数

   WSManConnectionInfo connectionInfo = 
     new WSManConnectionInfo(false, "localhost", 80, "/Powershell", "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential);
Run Code Online (Sandbox Code Playgroud)

要么

   WSManConnectionInfo connectionInfo = 
     new WSManConnectionInfo(false, "localhost", 5985, "/wsman", "http://schemas.microsoft.com/powershell/Microsoft.Powershell", credential);
Run Code Online (Sandbox Code Playgroud)
  • 如何设置我自己的自定义Powershell对象,以便通过HTTP公开它?

  • 使用的正确参数是什么以及如何设置它们?

c# powershell cmdlets powershell-remoting runspace

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

C#泛型:约束T,其中T:Object不编译; 错误:约束不能是特殊类'对象'

当我约束T:对象像这样:

public interface IDoWork<T> where T : Object
{
    T DoWork();
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

约束不能是特殊类'对象'

这是否意味着与编译的以下内容存在隐含的差异?

public interface IDoWork<T> // where T : Object
{
    T DoWork();
}
Run Code Online (Sandbox Code Playgroud)

.net c# generics clr object

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

如何在我自己的私有应用程序中使用Android的Face Unlock?

我想使用Face Unlock作为我的应用程序的第二个因素,因为我的大多数用户都不会使用密码锁定他们的手机.

是否有Android API可以在Android应用中集成Face Unlock?

有用于照片识别的人脸检测API,但我找不到可用于离线场景的API,特别是在应用程序中的其他因素.

如果你需要一个真实世界的例子,假设这是一个密码管理器,或者电话将被借给孩子......并且所有者永远不会锁定电话.面部解锁将确保他们需要私密的东西.

security android face-recognition password-protection android-support-library

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

如何在iPhone上以编程方式启用Guided Access(Kiosk模式)?

如何在iPhone上自动化引导访问模式?我需要自动启用和删除此功能

背景 来自爱荷华州的这个应用程序使用iOS应用程序来显示您的驾驶执照.问题是,将手机交给当局后,他们可以完全访问该设备.

如果我有这个或类似的应用程序的源代码,如何在切换出临时"Kiosk模式"时需要密码,以便手机或(理想情况下)无法提供照片,电子邮件或短信来自USB.

我找到了类似Android的解决方案,但现在正在寻找iOS解决方案

iphone privacy objective-c ios xamarin

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

Google广告不支持HTTPS.有什么替代品?

众所周知,谷歌广告不支持 HTTPS,但由于我将用户的会话存储在不记名令牌/ cookie中,我觉得需要加密这些信息......至少我可以保护我的最终用户免遭黑客攻击.

我有什么选择?我确定有人之前遇到过这种情况.可能有效的想法包括

  • 改变我的网站会员资格
  • 使用AdSense以外的其他内容(MSN?,其他人)
  • 向Google抱怨如果AdSense处于启用状态,则无法跟踪我的用户
  • 寻找一种不同的方式来通过我的网站获利(也就是改变我的商业模式)

cookies https asp.net-membership ads adsense

17
推荐指数
2
解决办法
1486
查看次数

在创建泛型类型的实例时无法提供参数

我有一个对象,我想在创建后才能读取...因为构造函数中的属性必须在GetHashCode中使用,因此一旦创建就不能更改.

我是readonly的许多类之一:

public class AccountLabel
{ 
    private string result;

    public AccountLabel(string result)
    {
        // TODO: Complete member initialization
        this.result = result;
    }

    public string JSONRPCData { get { return this.result; } }
}
Run Code Online (Sandbox Code Playgroud)

我有这样的通用结果类

  public  class JsonResult<T>  where  T : JObject, new()
  {
    private T bhash;
    private string p;
    private JsonErrorResponse error;
    private int _id;
    private Newtonsoft.Json.Linq.JObject ret;

    public JsonResult(Newtonsoft.Json.Linq.JObject ret)
    { 
        this.ret = ret;

        var tempError = ret["error"];
        var tempid = ret["id"];
        JsonErrorResponse error = new JsonErrorResponse(tempError);
        this.error = …
Run Code Online (Sandbox Code Playgroud)

c# generics json encapsulation

17
推荐指数
2
解决办法
6126
查看次数

有没有理由使用Google GCM和Apple消息进行推送通知?

Google拥有此Google Cloud Messaging信息,可与iOS集成

为同一目的使用Google Cloud Messaging或iOS有什么区别?

一个比另一个更有效吗?电池或网络负载是否不同?

android push-notification apple-push-notifications ios google-cloud-messaging

17
推荐指数
2
解决办法
4263
查看次数