问题列表 - 第34432页

如何在没有用户名和密码的情况下验证移动应用程序?

我正在构建一个使用 OpenId 来验证用户身份的 Web 应用程序,就像 Stackoverlfow 所做的那样。也会有一个移动应用程序,例如 Android 或 iPhone。这些应用程序必须以某种方式进行身份验证或登录,才能访问数据并更新属于用户的内容。由于无法提供用户名和密码来验证移动设备,我想知道如何实现这一点。

我想到了两种方法:

  1. 在服务器上生成一些必须在设备上输入的密钥。当移动设备发送或请求数据时,该密钥将作为身份验证密钥发送,并且可以通过这种方式链接用户。使用此选项时,密钥应以某种方式传输给用户,这样他就不必输入密钥。可能通过电子邮件、短信或扫描条形码。

  2. 移动应用程序使用浏览器或显示一个集成的 Web 面板,该面板可打开 Web 应用程序的特殊页面。在此页面上,用户必须登录,然后才能允许移动应用程序读取和写入数据。

我的问题是:这两种方法都可行且安全吗?您更喜欢哪一个?有哪些细节需要注意?还有其他方法可以做到这一点吗?如果我没问题的话,就不可能在设备上使用 OpenId,并以这种方式链接移动设备和 web 应用程序,对吧?

iphone authentication mobile android web-applications

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

Google App Engine上的web.py.

我正在尝试web.py在GAE上运行应用程序.我希望像以下那样可能有用

import web
from google.appengine.ext.webapp.util import run_wsgi_app

[...]

def main():
    app = web.application(urls, globals())
    run_wsgi_app(app)
Run Code Online (Sandbox Code Playgroud)

但显然该app对象不符合run_wsgi_app函数的期望.错误消息说得好像app has no __call__ function,所以我尝试了传递app.run,但这也没有用.

我该如何拨打电话run_wsgi_app

python google-app-engine web.py

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

C++全局函数

我在a .cpp文件中声明了一个全局函数void functionA().我希望functionA()在启动前(不在内部main())只调用一次.我意识到的是,如果功能是int functionB(),我可以使用它static int A = functionB().但对于返回值void,我该怎么做?

谢谢

c++

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

在.NET中实现Trie的合理方法是什么?

我得到了一个trie背后的概念.但是在实施方面我有点困惑.

我认为构建Trie类型最明显的方法是Trie维护内部Dictionary<char, Trie>.事实上,我已经用这种方式编写了一个,并且它可以工作,但是......这看起来有点过分了.我的印象是trie应该是轻量级的,并且每个节点都有一个单独的Dictionary<char, Trie>对我来说似乎不是很轻量级.

有没有更合适的方法来实现我缺少的这种结构?


更新:好的!基于Jon和leppie的非常有用的输入,这是我到目前为止所提出的:

(1)我有Trie类型,它有一个_nodes类型的私有成员Trie.INodeCollection.

(2)Trie.INodeCollection界面有以下成员:

interface INodeCollection
{
    bool TryGetNode(char key, out Trie node);
    INodeCollection Add(char key, Trie node);
    IEnumerable<Trie> GetNodes();
}
Run Code Online (Sandbox Code Playgroud)

(3)此接口有三种实现方式:

class SingleNode : INodeCollection
{
    internal readonly char _key;
    internal readonly Trie _trie;

    public SingleNode(char key, Trie trie)
    { /*...*/ }

    // Add returns a SmallNodeCollection.
}

class SmallNodeCollection : INodeCollection …
Run Code Online (Sandbox Code Playgroud)

.net implementation dictionary trie data-structures

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

在linq语句中添加自定义函数

嗨伙计们,
我想在关键字字段中搜索,如集合中的搜索键.
例如,我的关键是"Wing"关键字是"Wing Dress Others"的空格我应该写什么呢?
错误:方法'布尔比较(System.String,System.String)'没有支持的SQL转换.

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.QueryString.HasKeys())
    {
        DbDataContext db = new DbDataContext();
        var Query = from n in db.Products
                    where Compare(n.Keywords, Request.QueryString["key"])
                    select n;
        DataList1.DataSource = Query;
        DataList1.DataBind();
    }
}

bool Compare(string keywords,string key)
{
    string[] items = keywords.Split(' ');
    foreach (string item in items)
        if (item.Equals(key)) return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

c# linq-to-sql

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

我可以将命名范围附加到Rails中的链接吗?

我有一个事件模型,它有两个命名范围:

class Event < ActiveRecord::Base
  scope :future, lambda { where('events.date >= ?', Time.zone.now) }
  scope :past, lambda { where('events.date <= ?', Time.zone.now) }
end
Run Code Online (Sandbox Code Playgroud)

我通过创建两个新的控制器动作(名为"future"和"past")从我的控制器调用这些范围:

我的控制器:

class EventsController < InheritedResources::Base
  actions :index, :show, :future, :past

  has_scope :future
  has_scope :past

  def future
    index! { @events = Event.future }
  end

  def past
    index! { @events = Event.past }
  end
end
Run Code Online (Sandbox Code Playgroud)

我还有这些额外行动的观点和路线.

这很好用.我的应用程序执行我想要的操作,并且可以链接到我的侧边栏中的新操作,如下所示:

%li
  = link_to 'Events Home', events_path
%li
  = link_to 'Future Events', future_events_path
%li
  = link_to 'Past Events' past_events_path
Run Code Online (Sandbox Code Playgroud)

现在我对这个设置的问题是,虽然它工作得很好,但我不喜欢我必须为这些额外范围创建新的动作,视图和路由这一事实.我不认为我这样做是正确的.基本上我正在尝试过滤索引页面上的结果,但我必须创建新的操作,路由和视图来执行此操作.这看起来有点麻烦,我想知道是否有另一种方式.

如果我可以取消"未来"和"过去"控制器操作并且只是从视图中调用范围,那将是很好的: …

ruby-on-rails ruby-on-rails-3 has-scope

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

如何在程序执行期间阻止屏幕保护程序和睡眠?

在Win7上运行的c ++程序中,有没有办法伪造鼠标移动或类似的东西,只是为了防止屏幕保护程序启动和系统进入睡眠状态?我正在寻找最小的方法,我不想使用.NET.谢谢,-nuun

c++ sleep windows-7

12
推荐指数
1
解决办法
8042
查看次数

CF - TabControl - 如何使标签更大?

我有一个带标签页的标签控件(cf).

标签太小了...可以告诉我怎样才能让它们更大?

c# compact-framework tabcontrol tabpage

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

带有StructureMap(IoC)的IQueryable存储库 - 我如何实现IDisposable?

如果我有以下存储库:

public IQueryable<User> Users()
{
   var db = new SqlDataContext();
   return db.Users;
}
Run Code Online (Sandbox Code Playgroud)

我知道只有在触发查询时才会打开连接:

public class ServiceLayer
{
   public IRepository repo;

   public ServiceLayer(IRepository injectedRepo)
   {
       this.repo = injectedRepo;
   }

   public List<User> GetUsers()
   {
       return repo.Users().ToList(); // connection opened, query fired, connection closed. (or is it??)
   }
}
Run Code Online (Sandbox Code Playgroud)

如果是这种情况,我还需要使我的Repository实现IDisposable吗?

Visual Studio Code Metrics当然认为我应该.

我正在使用IQueryable因为我将查询控制到我的服务层(过滤器,分页等),所以请不要就我使用它的事实进行架构讨论.

BTW - SqlDataContext是我的自定义类,它扩展了Entity Framework的ObjectContext类(所以我可以拥有POCO派对).

所以问题 - 我真的必须实现IDisposable吗?

如果是这样,我不知道这是如何可能的,因为每个方法共享相同的存储库实例.

编辑

我正在使用Depedency Injection(StructureMap)将具体的存储库注入服务层.这个模式跟随app堆栈 - 我正在使用ASP.NET MVC,并且具体服务被注入到控制器中.

换一种说法:

  1. 用户请求URL
  2. 创建控制器实例,该实例接收新的ServiceLayer实例,该实例是使用新的Repository实例创建的.
  3. 控制器调用服务上的方法(所有调用使用相同的Repository实例)
  4. 一旦请求被提供,控制器就消失了.

我正在使用混合模式将依赖项注入我的控制器,根据StructureMap文档,这些实例将存储在HttpContext.Current.Items中.

所以,我不能这样做:

   using (var repo = new …
Run Code Online (Sandbox Code Playgroud)

structuremap idisposable iqueryable repository objectcontext

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

Django和xlrd,从内存中读取

我的计划是让用户上传一个excel文件,一旦上传,我将显示包含上传的excel内容的可编辑表单,一旦用户确认输入正确,他/她点击保存按钮并保存这些项目在某种模式.

为此,我写了这个观点和形式:

形成:

IMPORT_FILE_TYPES = ['.xls', ]

class XlsInputForm(forms.Form):
    input_excel = forms.FileField(required= True, label= u"Upload the Excel file to import to the system.")

    def clean_input_excel(self):
        input_excel = self.cleaned_data['input_excel']
        extension = os.path.splitext( input_excel.name )[1]
        if not (extension in IMPORT_FILE_TYPES):
            raise forms.ValidationError( u'%s is not a valid excel file. Please make sure your input file is an excel file (Excel 2007 is NOT supported.' % extension )
        else:
            return input_excel
Run Code Online (Sandbox Code Playgroud)

视图:

def import_excel_view(request):
    if request.method == 'POST':
        form = XlsInputForm(request.POST, request.FILES)
        if …
Run Code Online (Sandbox Code Playgroud)

django excel xlrd

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