因此,现在有很多不同的服务,谷歌API,Twitter API,Facebook API等.
每个服务都有一个API密钥,如:
AIzaSyClzfrOzB818x55FASHvX4JuGQciR9lv7q
所有密钥的长度和它们包含的字符各不相同,我想知道生成API密钥的最佳方法是什么?
我不是要求特定的语言,只是创建密钥的一般方法,它们是用户应用程序的详细信息加密,哈希,或随机字符串的哈希等等.我们应该担心哈希算法(MSD,SHA1,bcrypt)等?
编辑: 我已经和一些朋友(电子邮件/推特)进行了交谈,他们建议只使用带有短划线的GUID.
这对我来说似乎有些惹人注意,希望能得到更多的想法.
Soooooo isNaN
显然在JavaScript中被打破了,例如:
isNaN('')
isNaN(' ')
isNaN(true)
isNaN(false)
isNaN([0])
Run Code Online (Sandbox Code Playgroud)
回归假,当他们看起来都是......不是数字......
在ECMAScript 6中,草案包含一个新的,Number.isNaN
但看起来像(imo)这也被打破了......
我期待
Number.isNaN('RAWRRR')
Run Code Online (Sandbox Code Playgroud)
要返回true,因为它是一个字符串,并且无法转换为数字...但是......
似乎我会考虑的事情......不是数字,确实不是,不是数字......
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-isfinite-number
MDN的例子说:
Number.isNaN( "布拉布拉"); //例如,isNaN就是这样
我不明白这是怎样的"原始全球isNaN的更强大的版本." 当我无法检查,看看事情是不是一个数字.
这意味着我们仍然需要进行实际的类型检查以及检查isNaN ...这看起来很傻......
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-isnan-number
这里的ES3草案基本上说,一切都是假的,除了它的Number.NaN
有没有人发现这个坏了或者我只是不明白isNaN的意思?
我注意到,在cookie方面,浏览器之间存在一些真正的不一致.
这将是相当长的,所以请耐心等待.
注意:我在我的主机文件中设置了一个名为"testdomain.com"的域,这个错误 WONT 在使用"localhost"时起作用.
注意2:我很想知道如果它按照名称检索cookie,如果它提供了一系列cookie,那么它在Apache/PHP上是如何工作的.
维基百科声明:http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path
域和路径
cookie域和路径定义cookie的范围 - 它们告诉浏览器只应将cookie发送回给定域和路径的服务器.如果未指定,则它们默认为请求的对象的域和路径.
所以如果我们推倒:
Response.Cookies.Add(new HttpCookie("Banana", "2")
{
});
Run Code Online (Sandbox Code Playgroud)
我们应该获得一个cookie,其中所使用的域是来自请求对象的域,在这种情况下它应该是"testdomain.com".
W3在cookie规范中说明:http://www.w3.org/Protocols/rfc2109/rfc2109
域=域名
可选的.Domain属性指定cookie有效的域. 明确指定的域必须始终以点开头.
所以如果我们推倒:
Response.Cookies.Add(new HttpCookie("Banana", "1")
{
Domain = Request.Url.Host
});
Run Code Online (Sandbox Code Playgroud)
我们明确地推下了主机名,我们应该在cookie上设置一个以点为前缀的域名,在这种情况下它应该是".testdomain.com".
它还说明了维基百科上的内容:
域默认为请求主机.(请注意,request-host开头没有点.)
和我一起到目前为止?
如果我使用第一种方法,则定义域:
Response.Cookies.Add(new HttpCookie("Banana", "1")
{
Domain = Request.Url.Host
});
Run Code Online (Sandbox Code Playgroud)
这是结果:
IE9:1个cookie
Opera:1个cookie
Firefox:1个cookie
Chrome:1个Cookie
如您所见,Opera和IE都设置了一个没有点前缀的EXPLICIT域.
Firefox和Chrome DO都使用点前缀设置EXPLICIT域.
如果我使用以下代码:
Response.Cookies.Add(new HttpCookie("Banana", "2")
{
});
Run Code Online (Sandbox Code Playgroud)
IE/Opera:两者都有完全相同的结果,没有点前缀的域.
有趣的是,Firefox和Chrome都创建了没有点前缀的cookie.
(我清除了所有cookie并再次运行代码)
火狐:
铬:
这是它变得有趣的地方.如果我像这样一个接一个地写饼干:
Response.Cookies.Add(new HttpCookie("Banana", "1") …
Run Code Online (Sandbox Code Playgroud) 如何在所有网络接口上进行Web API自主绑定?
我目前有以下代码.不幸的是,它仅绑定在localhost上.因此,从localhost以外的地方访问此服务器失败.
var baseAddress = string.Format("http://localhost:9000/");
using (WebApp.Start<Startup> (baseAddress))
{
Console.WriteLine("Server started");
Thread.Sleep(1000000);
}
Run Code Online (Sandbox Code Playgroud) 我必须在Fluent NHibernate中编写一个查询
Select * from Users where UserName = 'Abcd' AND Password = '123456'
如何用上面的查询创建 session.CreateCriteria
(找不到重复)
有谁知道原因:
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#PFormatString
'p'字符串格式为百分比,在用百分号进行格式化之前将值乘以100?
百分比("P")格式说明符
百分比("P")格式说明符将数字乘以100并将其转换为表示百分比的字符串.精度说明符表示所需的小数位数.如果省略精度说明符,则使用当前PercentDecimalDigits属性提供的默认数值精度.
反正是否有格式化之前阻止值乘以100?而不是做:
(value / 100).ToString("p")
Run Code Online (Sandbox Code Playgroud) 可以跨表创建唯一索引,基本上使用视图和唯一索引.
我有一个问题.
给出两个(或三个)表.
Company
- Id
- Name
Brand
- Id
- CompanyId
- Name
- Code
Product
- Id
- BrandId
- Name
- Code
Run Code Online (Sandbox Code Playgroud)
我想确保组合的独特性:
Company / Brand.Code
Run Code Online (Sandbox Code Playgroud)
和
Company / Brand.Product/Code
Run Code Online (Sandbox Code Playgroud)
很独特.
CREATE VIEW TestView
WITH SCHEMABINDING
AS
SELECT b.CompanyId, b.Code
FROM dbo.Brand b
UNION ALL
SELECT b.CompanyId, p.Code
FROM dbo.Product p
INNER JOIN dbo.Brand b ON p.BrandId = b.BrandId
Run Code Online (Sandbox Code Playgroud)
视图的创建是成功的.
CREATE UNIQUE CLUSTERED INDEX UIX_UniquePrefixCode
ON TestView(CompanyId, Code)
Run Code Online (Sandbox Code Playgroud)
因为这个失败了 UNION
我该如何解决这个问题呢?
基本上,两者的代码都Brand/Product
不能在公司内重复.
笔记:
我得到的错误是: …
给出两个子域:
web.mysite.com
和 api.mysite.com
目前正在进行任何请求,web.
以api.
产生预检OPTIONS请求.如果它没有在中国增加额外600毫秒的请求,这不会是一个问题.
我被告知document.domain = 'mysite.com';
JS 中的设置可以解决问题,但这根本没有帮助.
是否可以/如何在发送到不同的子域时禁用OPTIONS请求.
我刚刚遇到NHibernate中的一个错误,该错误恰好已经被提出:https: //nhibernate.jira.com/browse/NH-2763
我不确定这是否适用于枚举以外的任何其他内容,但是当使用VB中的Lambda时,它看起来与C#中的相同Lambda不同.
C#:
Where(x => x.Status == EmployeeStatus.Active)
Run Code Online (Sandbox Code Playgroud)
VB
Where(Function(x) x.Status = EmployeeStatus.Active)
Run Code Online (Sandbox Code Playgroud)
就我所知,它们是一样的吗?(我的VB不是很好)
如果我在同一行代码上放置一个断点,那么上面的代码将被传入.在C#我得到:
在VB版本传入的同一行,我得到:
这是我做错了吗?结果是否相同,只是在C#/ VB之间显示不同?
编辑: 好的,所以它们显示不同,但它们不能相同,因为NHibernate无法处理它.NHibernate完全处理了C#版本,VB版本在抛出以下异常时解析:
NHibernate StackTrace:
at NHibernate.Impl.ExpressionProcessor.FindMemberExpression(Expression expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs:line 168
at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(Expression left, Expression right, ExpressionType nodeType) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs:line 323
at NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression(BinaryExpression be) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs:line 316
at NHibernate.Impl.ExpressionProcessor.ProcessBinaryExpression(BinaryExpression expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs:line 418
at NHibernate.Impl.ExpressionProcessor.ProcessExpression(Expression expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs:line 486
at NHibernate.Impl.ExpressionProcessor.ProcessExpression[T](Expression`1 expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionProcessor.cs:line 504
at NHibernate.Criterion.QueryOver`2.Add(Expression`1 expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Criterion\QueryOver.cs:line 635
at NHibernate.Criterion.QueryOver`2.NHibernate.IQueryOver<TRoot,TSubType>.Where(Expression`1 expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Criterion\QueryOver.cs:line 686
at *removed*.EmployeeRepository.GetByEntityId(Int64 entityId, …
Run Code Online (Sandbox Code Playgroud) 我对Nancy很陌生,现在正在尝试使用Auth.期待完全实现Forms身份验证.
出于测试目的,我设置了3个模块.
其他模块:
public class OtherModule : NancyModule
{
public OtherModule() : base()
{
// Use global, module level authentication.
this.RequiresAuthentication();
Get["/other"] = _ =>
{
return "Other";
};
Get["/woot"] = _ =>
{
return "Woot";
};
}
}
Run Code Online (Sandbox Code Playgroud)
主要模块:
public class MainModule : NancyModule
{
public MainModule() : base()
{
Get["/yolo"] = _ =>
{
// Use per-route authentication.
this.RequiresAuthentication();
return "#YOLO";
};
}
}
Run Code Online (Sandbox Code Playgroud)
AuthModule:
public class AuthModule : NancyModule
{
public AuthModule() : base()
{
Get["/login"] = …
Run Code Online (Sandbox Code Playgroud) c# ×5
javascript ×2
ajax ×1
api-key ×1
asp.net ×1
cookies ×1
cors ×1
ecmascript-6 ×1
lambda ×1
nan ×1
nancy ×1
nhibernate ×1
security ×1
self-hosting ×1
sql ×1
sql-server ×1
unique-index ×1
vb.net ×1