小编ili*_*rit的帖子

有没有人有一个用户界面的例子来创建SQL Where子句?

我在尝试将嵌套条件映射到直观界面时遇到了麻烦.

例如.你将如何表示((条件1和条件2)或(条件1和条件5))和条件4

sql user-interface

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

控制坦克式车辆运动的公式?

有人知道用于控制简单坦克式车辆运动的公式吗?

要"操纵"它,你需要改变施加左右"轮子"的力.例如.两个车轮上的1个单位的力使其前进.两个车轮上的-1个单位的力使其向后移动.对一个轮子施加的力比另一个轮子更大,然后转动.

您如何计算两个车轮所需的力量,以便将油箱转向一定程度的度数?

或者我是以错误的方式思考这个问题?

编辑:威廉凯勒提到我错过了坦克的速度.假设两个车轮上的1个单位的力以每秒1个单位向前移动油箱.

对于任何有兴趣的人,我只是在gamedev.net上找到了这个帖子:http://66.102.9.104/search?q = cache:wSn5t58ACJwJ:www.gamedev.net/community/forum/topic.asp%3Ftopic_id%3D407491+tank +轨道+半径+速度&HL = EN&CT = clnk和CD = 1&GL = ZA&客户=火狐-一个

另一个主题是:http://www.physicsforums.com/showthread.php? t = 220317

事实证明找到公式的关键只是知道正确的术语("滑行转向"):P

language-agnostic algorithm

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

此WebService安全方案存在哪些潜在问题?

我们有一个服务,根据用户名和密码处理授权.我们将其放在SOAP标头中,而不是将用户名和密码作为调用的一部分.

在典型的场景中,Web Service在执行开始时调用Authorization服务以检查是否允许调用者调用它.问题是这些Web服务中的一些相互调用,这意味着在每个子调用中都会检查用户的权限,这可能非常昂贵.

我想做的是让授权服务在第一次调用后返回安全令牌.然后,Web Service可以在本地验证安全标头,而不必每次都调用授权服务.

安全标题看起来像这样(C#代码 - 修剪以说明基本概念):

public sealed class SecurityHeader : SoapHeader
{
    public string UserId;     // Encrypted   
    public string Password;   // Encrypted; Just realized this field isn't necessary [thanks CJP]

    public DateTime TimeStamp;   // Used for calculating header Expiry
    public string SecurityToken;
}
Run Code Online (Sandbox Code Playgroud)

一般的想法是每次调用都会检查SecurityHeader.如果它存在,但尚未过期,并且SecurityToken有效,则Web方法将正常进行.否则它将返回错误,或者它将尝试重新授权并生成新的SecurityHeader

SecurityToken基于UserId,Password和TimeStamp的盐渍哈希.每天更换盐以防止重放.

我看到的一个问题是用户可能有权访问Web服务A,但不能访问Web服务B.如果他调用A并收到安全令牌,就像现在一样,这意味着如果他使用B将让他通过同样的道理.我必须更改它,以便安全令牌仅在从Web服务到Web服务,而不是用户到Web服务,即.如果用户调用A调用B,则应该没有问题,但如果用户调用服务A然后调用服务D则不行.解决方法是将公共密钥(或一组密钥)分配给逻辑相关的服务.(即如果客户可以做A,那么逻辑上他也可以做​​B).

或者,我必须将用户的整个权限集编码为安全头的一部分.我将不得不调查开销是多少.

编辑:

有几个人提到了其他安全方案,比如WS-Security和SAML等.我已经有了.事实上,我从WS-Security那里得到了这个想法.问题是其他方案不提供我需要的功能(缓存授权信息并防止在没有中间数据库的情况下重放).如果有人知道一个方案,那么我会用它来替代它.此外,这不是关于身份验证.这是由我无法控制的另一种机制处理的.

如果事实证明无法缓存授权数据,那么这意味着我只需要承担每个级别的授权开销.

security web-services

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

SQLite:查询返回旧/缓存数据

我们有一个项目列表及其状态的活动.当用户单击该项目时,将启动另一个活动,用户可以在其中执行更改该项目状态的某些任务.当活动完成并且前一个活动恢复时,将从数据库中查询项目及其状态并列出(查询基本上执行计数(*),因此它应该找到刚刚插入的记录).

问题是有些用户报告有时项目没有更新,所以他们回去再次执行任务导致重复交易,这在正常情况下是不可能的(我们可以从服务器上的数据确认这一点) .

出于某种原因,我根本无法复制行为(在实际的设备和模拟器上).但是我们知道由于用户反馈和我们收到的数据,查询返回旧数据.根据我的估计,它发生在大约3%的时间.

这是否与SQLite设置有关,或者我们的代码中是否有错误?

这基本上是代码的作用:

// Insert new record
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();

processContentForDeviceStock(contentValues, object);

db.insert("table", null, contentValues);
db.close();

new AlertDialog.Builder(
    CurrentActivity.this)
    .setTitle("Success")
    .setMessage("Insert succesful")
    .setPositiveButton("OK",
        new OnClickListener() {
            @Override
            public void onClick(
                    DialogInterface dialog,
                    int which) {
                setResult(RESULT_OK);
                // We are done, go back to the previous activity
                finish();
            }
        }).create().show();
Run Code Online (Sandbox Code Playgroud)

List活动恢复时:

SQLiteDatabase db = this.getReadableDatabase();
Cursor res =  db.rawQuery(listQuery, null);
res.moveToFirst();

while(!res.isAfterLast()) {
    // Build our item list
    /*
    ...
    */
    res.moveToNext(); …
Run Code Online (Sandbox Code Playgroud)

sqlite android

5
推荐指数
0
解决办法
425
查看次数

是否可以缓存lambda表达式中计算的值?

在以下代码的ContainsIngredients方法中,是否可以缓存p.Ingredients值而不是多次显式引用它?这是我刚熟了用于说明目的相当简单的例子,但我工作的引用代码值深处p如.p.InnerObject.ExpensiveMethod().值

编辑:我正在使用来自http://www.albahari.com/nutshell/predicatebuilder.html的PredicateBuilder

public class IngredientBag
{
    private readonly Dictionary<string, string> _ingredients = new Dictionary<string, string>();

    public void Add(string type, string name)
    {
        _ingredients.Add(type, name);
    }

    public string Get(string type)
    {
        return _ingredients[type];
    }

    public bool Contains(string type)
    {
        return _ingredients.ContainsKey(type);
    }
}

public class Potion
{
    public IngredientBag Ingredients { get; private set;}
    public string Name {get; private set;}        

    public Potion(string name) : this(name, null)
    {

    }

    public Potion(string name, IngredientBag ingredients)
    { …
Run Code Online (Sandbox Code Playgroud)

c# linq lambda predicate

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

是否有算法计算x模y(对于y <1000)的乘法顺序,不需要BigInteger类型?

我现在使用的算法很快就会遇到极高的数字.算法中的一步我将x提升到应用于y的totient函数的结果.结果是你可能遇到很大的数字.

例如.当计算10模数53 的乘法顺序时:

10^totient(53) == 10^52 == 1 * 10^52
Run Code Online (Sandbox Code Playgroud)

以下算法在避免大数量方面表现更好,但在10 ^ mOrder大于数据类型容量的情况下仍然失败:

  mOrder = 1
  while 10^mOrder % 53 != 1
      if mOrder >= i
          mOrder = 0;
          break
      else
          mOrder = mOrder + 1
Run Code Online (Sandbox Code Playgroud)

algorithm math discrete-mathematics

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

不良的聚集索引寻求表现?

我有这两个问题:

SELECT SELECT NamesRecord.NameID, NamesRecord.FulfillmentAddressID NameFulfillmentAddressID, ContractRecord.FulfillmentAddressID, ContractRecord.BillingAddressId
FROM Magnet.dbo.ContractRecord ContractRecord
    INNER JOIN Magnet.dbo.NamesRecord NamesRecord
        ON NamesRecord.NameId = ContractRecord.DonorId
WHERE NameID > -1
AND (EXISTS (
        SELECT 1
        FROM Magnet.dbo.AddressRecord AddressRecord
        WHERE AddressRecord.AddressId = ContractRecord.FulfillmentAddressId
        AND BuildingFloor LIKE 'M%')
    OR  EXISTS (
        SELECT 1
        FROM Magnet.dbo.AddressRecord AddressRecord
        WHERE AddressRecord.AddressId = ContractRecord.BillingAddressId
        AND BuildingFloor LIKE 'M%'))


SELECT SELECT NamesRecord.NameID, NamesRecord.FulfillmentAddressID NameFulfillmentAddressID, ContractRecord.FulfillmentAddressID, ContractRecord.BillingAddressId
FROM Magnet.dbo.ContractRecord ContractRecord
    INNER JOIN Magnet.dbo.NamesRecord NamesRecord
        ON NamesRecord.NameId = ContractRecord.DonorId
WHERE NameID > -1
AND (EXISTS (SELECT …
Run Code Online (Sandbox Code Playgroud)

sql-server indexing performance

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

在 Nim 中使用前向声明的原型分配函数指针

我想将一个窗口过程分配给一个窗口类结构:

var wndClass : WNDCLASS;

wndClass.lpszClassName = CLASSNAME;
wndClass.lpfnWndProc   = WndProc;
wndClass.hInstance     = hInstance;
Run Code Online (Sandbox Code Playgroud)

我还不能分配 WndProc,因为它还没有被声明。当我使用前向声明(此处描述)时:

proc WndProc(hWnd: HWND; msg: WINUINT; wParam: WPARAM; lParam: LPARAM) : LRESULT
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Error: type mismatch: got (None) but expected 'WNDPROC'
Run Code Online (Sandbox Code Playgroud)

我的前向声明是错误的,还是在这种情况下我必须先编写函数?

编辑:

作为参考,以下代码适用于全局范围:

proc Foo : int32;

var bar = Foo();
var baz = Foo;

echo bar;
echo baz();

proc Foo : int32 =
    return 4;
Run Code Online (Sandbox Code Playgroud)

WNDCLASS 和 WNDPROC 的定义可以在这里找到:http ://nim-lang.org/windows.html

function-pointers forward-declaration nim-lang

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

使用匿名身份验证调用HTTPS WCF服务?

即使在WCF服务的虚拟目录上启用了匿名访问并且禁用了集成身份验证,我仍然会收到错误:

HTTP请求未经授权,客户端身份验证方案为"匿名".从服务器收到的身份验证标头是"Negotiate,NTLM".

这就是客户端绑定配置的安全性定义如下所示:

<security mode="Transport">
    <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
    <message clientCredentialType="None" negotiateServiceCredential="false" />
</security>
Run Code Online (Sandbox Code Playgroud)

和端点定义:

<endpoint address="https://url.com/Service.svc"
            binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService"
            contract="IService" name="WSHttpBinding_IService">
            <identity>
                <servicePrincipalName value="spn" />
            </identity>
</endpoint>
Run Code Online (Sandbox Code Playgroud)

我已经尝试过添加:

client.ClientCredentials.Windows.AllowedImpersonationLevel =  System.Security.Principal.TokenImpersonationLevel.Impersonation;
Run Code Online (Sandbox Code Playgroud)

但它似乎没有任何影响.

我需要更改IIS上的某些内容吗?

[编辑]

服务配置:

<behaviors>
   <endpointBehaviors>
      <behavior name="defaultBehavior"/>
   </endpointBehaviors>
   <serviceBehaviors>
      <behavior name="metadataSupport">
         <serviceMetadata httpsGetEnabled="true" httpsGetUrl=""/>
         <useRequestHeadersForMetadataAddress>
            <defaultPorts>
               <add scheme="https" port="443" />
            </defaultPorts>
         </useRequestHeadersForMetadataAddress>
      </behavior>
   </serviceBehaviors>
</behaviors>
<services>
   <service name="ServiceLibrary.Service"
            behaviorConfiguration="metadataSupport">
      <endpoint address=""
                binding="wsHttpBinding"
                bindingConfiguration="wsSecureBinding"
                contract="ServiceLibrary.IService"/>
      <endpoint address="mex"
                binding="wsHttpBinding"
                bindingConfiguration="wsSecureBinding"
                name="mexHttps"
                contract="IMetadataExchange" />
   </service>
</services>
<bindings>
   <wsHttpBinding>
      <binding name="wsSecureBinding"> …
Run Code Online (Sandbox Code Playgroud)

iis wcf

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

使用Moq验证使用ref参数的调用

如何验证使用Moq调用"CallWithRef"方法?

public interface ITest
{
    void CallWithoutRef(string value, List<string> errors);
    void CallWithRef(string value, ref List<string> errors);
}

public class Foo
{
    private ITest testInterface;

    public Foo(ITest testInterface)
    {
        this.testInterface = testInterface;
    }

    public void DoStuff(string value)
    {
        var errorList = new List<string>();
        testInterface.CallWithoutRef(value, errorList);
        testInterface.CallWithRef(value, ref errorList);
    }
}

[TestMethod]
public void VerifyTestInterfaceCalls()
{
    var expectedValue = Path.GetRandomFileName();
    var mockTestInterface = new Mock<ITest>();
    var foo = new Foo(mockTestInterface.Object);

    foo.DoStuff(expectedValue);
    mockTestInterface.Verify(x => x.CallWithoutRef(expectedValue, It.IsAny<List<string>>()));

    // Test fails here:
    var errorList = …
Run Code Online (Sandbox Code Playgroud)

moq ref verify

3
推荐指数
2
解决办法
4198
查看次数