小编eli*_*iot的帖子

焦点更改后,键盘也不会消失

我正在创建一个Windows 8.1应用程序,在用户按下按钮后,弹出窗口将打开大部分屏幕.popover中有几个文本框.

我从microsoft 找到了这个示例代码,介绍了如何检测屏幕键盘的外观.

我还发现以下SO帖子和网站基本上告知没有办法强制键盘关闭,而正确的做法实际上是以编程方式将隐藏元素集中在页面上或禁用然后重新启用文本框:

所以我按照建议创建了一个隐形按钮.当用户点击关闭按钮时,它应该关注该按钮并关闭键盘.什么情况是文本框确实失去焦点,但键盘不会消失.如果我使关闭按钮将焦点置于隐藏按钮关闭弹出窗口(这是所需的效果),则在点击视图(之前在弹出窗口下)之前键盘不会消失.

如何关闭弹出窗口导致键盘解除?

编辑:似乎有一种方法可以以编程方式关闭键盘,因为在键盘打开时触发App Bar打开会自动关闭键盘.

c# windows xaml

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

安全玩!来自外部申请

我正在使用Play编写私有REST API!我将从移动应用程序拨打电话,我对如何保证其安全感到困惑.

在Play!的文档中使用Yet Another Blog Engine示例时,我完成了他们的身份验证示例,并处理了通过浏览器登录的问题.根据我对Play!的安全模块的理解,它有助于浏览器会话.此外,我看到的每个StackOverflow问题都涉及到Web上的管理模块,问题也与会话有关.

玩吗!框架有任何内置机制来防止会话劫持?

使用play框架强制登录Https路由以进行登录

我目前对安全应该如何运作的理解:

  • 移动应用程序"登录"到Web应用程序并获取某种令牌
  • 每次后续调用时,令牌都会附加到API调用的末尾
  • 如果移动用户"注销"或令牌过期,则Web应用程序将删除令牌
  • 每个API调用都使用HTTPS以保持安全性

我是否可以从移动应用程序向我使用Play创建的Web应用程序发出HTTP请求!框架同时保持安全吗?

我是否错误地接近了整个情况?

这是第一次玩!我创建的应用程序,这是我第一次使用Heroku.我并不太远,因为如果它更容易/更有效/更适合解决这个问题,我会反对改用别的东西.

编辑:另外,在Play!的YABE教程中,似乎他们用纯文本检查密码.从一般的角度来看,这不是一个安全问题吗?

编辑2:我查看了OAuth提供商信息,似乎解决了这个问题.我唯一担心的是v2.0已知安全漏洞,v1.0似乎很难实现,因为我需要的只是移动应用程序和Web应用程序之间的安全连接.如果我要使每个呼叫都需要SSL,我是否可以将每个Play方法仅用户名和密码作为参数并完全忽略OAuth?

java security heroku playframework

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

使用元数据发送文件

我正在编写一个Web应用程序和一个OS X应用程序,它将文件上传到服务器.

Web应用程序使用FlowJS来处理将文件发送到服务器.与每个请求一起,它发送块号,块大小,总文件大小,文件名等.这很好,因为在幕后我将这些数据上传到S3并且我使用此信息来确定文件何时是完成上传.此外,由于数据是以块的形式存在的,因此我不必将整个文件存储在服务器的内存中.

对于具有目标c的OS X,我计划使用AFNetworking.我尝试使用分段上传:

-(void)uploadFileWithUrl:(NSURL*)filePath  {
    AFHTTPRequestOperationManager*manager = [AFHTTPRequestOperationManager manager];
    [manager POST:@"http://www.example.com/files/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileURL:filePath name:@"blob" error:nil];
    } success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Success: %@", responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
}
Run Code Online (Sandbox Code Playgroud)

但这只是试图在一个请求中发送整个文件,这是不可接受的,因为服务器将在大量请求上耗尽内存.

我想知道的是,对于目标C有什么类似FlowJS,或者是否有某种方法可以将AFNetworking中的信息包含在每个呼叫中​​.

networking file-upload multipartform-data objective-c afnetworking

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

在Karma Angular Unit Test期间'错误:意外请求'

运行时grunt karma,对其中一个指令的测试在尝试获取模板时失败.我使用ng-html2js作为预处理器.这是我的一些karma.conf.js

plugins: ['karma-chrome-launcher',
          'karma-jasmine',
          'ng-html2js',
          'karma-ng-html2js-preprocessor'],

preprocessors: {
  'app/scripts/directives/**/*.html': 'ng-html2js'
},

ngHtml2JsPreprocessor: {
  moduleName: 'templates'
}
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我有以下内容:

'use strict';

describe('Directive: myDirective', function () {

  // load the directive's module
  beforeEach(module('myApp'));
  beforeEach(module('templates'));

  var element,
    scope;

  beforeEach(inject(function ($rootScope) {
    scope = $rootScope.$new();
  }));

  it('should not show search area initially', inject(function ($compile) {
    element = angular.element('<navbar></navbar>');
    element = $compile(element)(scope);
    scope.$digest();
    expect(element.find('.myClass').hasClass('myClass')).toBe(true);
  }));
});
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到了

Error: Unexpected request: GET /scripts/directives/myDirective/myDirective.html

好像预处理器没有正确地注入模板的javascript版本.

我也尝试使用模板的路径,beforeEach(module(''));但会导致错误,内容如下:

Error: [$injector:modulerr] Failed to instantiate module...

我怎样才能解决这个问题?

javascript unit-testing jasmine angularjs karma-runner

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

我可以暴露哈希盐+密码吗?

我在salt +密码上使用SHA-512哈希1000次.在查询有关用户的信息时是否可以安全返回,或者我应该保护它并使其仅通过HTTPS可用?

例如,如果我发出以下请求:

GET: http://domain.com/users?id=437
Run Code Online (Sandbox Code Playgroud)

它返回:

{"firstName":"Eliot","lastName":"My last name","email":"email@emailplace.com","password":[91,49,-34,77,79,-48,67,-62,-12,84,84,-18,-81,23,-92,-31,74,-28,-80,102,60,35,-102,115,18,-76,20,-90,-8,91,13,23],"authToken":"33c977b1-5ab6-4a8a-8da9-68c8028eff92","id":179}
Run Code Online (Sandbox Code Playgroud)

这是公开的吗?

security passwords hash public salt

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

嵌套 has_one 关联的强参数

我似乎遗漏了一些明显的东西,但我无法允许嵌套has_one关联的属性。

控制器:

def create
  @crossword = Crossword.new(crossword_params)

  if @crossword.save
    render :show, status: :created, location: [:api, @crossword]
  else
    render json: @crossword.errors, status: :unprocessable_entity 
  end
end

def crossword_params
  params.require(:crossword).permit(:title, :grid_size, grid_size_attributes: [:rows, :columns])
end
Run Code Online (Sandbox Code Playgroud)

模型:

validates :title, :grid_size, presence: true
validates_associated :grid_size
has_one :grid_size
accepts_nested_attributes_for :grid_size
Run Code Online (Sandbox Code Playgroud)

要求:

POST /api/crosswords.json HTTP/1.1
X-Accept: application/crosswords.v1
Content-Type: application/json
Host: localhost:3000
Connection: close
User-Agent: Paw/2.1 (Macintosh; OS X/10.10.0) GCDHTTPRequest
Content-Length: 83

{"crossword":{"title":"My Aweosme Crossword","grid_size":{"rows":15,"columns":15}}}
Run Code Online (Sandbox Code Playgroud)

Rails 控制台输出:

Started POST "/api/crosswords.json" for 127.0.0.1 at 2014-12-19 11:05:13 -0500 …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails strong-parameters ruby-on-rails-4

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

播放2作为仅后端API

我用Play 1.2创建了几个大型后端API.现在我已经为自己创建了一些空闲时间,我有兴趣尝试对Play 2进行相同操作.但是,似乎所有教程示例项目仅提供用于处理表单数据的用例.

当我说只有后端的API时,我指的是一些不会呈现人类可读的视图的东西.更具体地,例如,对移动应用程序的后端服务.它的大多数响应都将格式化为JSON数据.

我知道文档显示了如何解析JSON请求,但它似乎仍然是一个例外.我意识到我可能完全错了,但我发现奇怪的是,Play的所有示例似乎都使用表单数据与控制器进行交互,而不是外部调用.

Play 2仍然是这个用例的正确选择吗?如果是这样,是否有任何好的示例项目或教程?

json scala playframework playframework-2.0

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

禁止自动布局警告

我在笔尖中放置了 3 个图像视图。他们需要根据纵向或横向从不同的 y 值开始。此外,它们会根据单击按钮移动到屏幕底部。那时,我删除了顶部约束并添加了底部约束。

由于这很复杂,我决定在代码中处理这些特定的约束。但是,我仍然收到警告,指出这些图像视图的 y 位置不明确。

有什么办法让我告诉 Xcode 不要担心,我已经在代码中设置了约束?我能想到的唯一解决方案是在笔尖中创建一个约束并在视图加载时删除它,但这似乎很麻烦。

xcode ios autolayout

2
推荐指数
1
解决办法
898
查看次数