我有一个场景,我正在构建的网站的用户需要能够在不必登录的情况下将一些基本信息输入到webform中.该站点正在使用ASP.NET/C#开发,并使用MSSQL 2005作为其关系数据.
将向用户发送来自站点的电子邮件,为他们提供唯一链接以输入他们所需的特定信息.该电子邮件非常类似于我们在注册论坛等网站时所获得的电子邮件样式,其中包含一个随机生成的,唯一的URL参数,专门用于单一目的(例如验证论坛的电子邮件地址).
我的疑问是关于此问题的安全实施.我正在考虑使用GUID作为唯一标识符,但我不确定它在安全领域的影响.
.NET的GUID实现是否足够随机,因为在"密钥空间"中生成所有可能值的机会相等?
如果使用GUID是一种可接受的方法,那么网站是否应该通过URL重写或通过将数据表中的信息与GUID作为参考相关联来重定向到信息?
使用URL重写会隐藏数据的真正来源吗?
我应该考虑使用TSQL的SELECT NEWID()作为.NET实现的GUID生成器吗?
我对这个问题的解决方法完全错了吗?
非常感谢,
卡尔
我有一个全局请求过滤器,用于mythz(ServiceStack dev)建议的验证,在本SO答案中
我的过滤器:
RequestFilters.Add((httpReq, httpResp, requestDto) =>
{
if (!PublicRoutes.Contains(httpReq.PathInfo))
{
new AuthenticateAttribute().Execute(httpReq, httpResp, requestDto);
}
});
Run Code Online (Sandbox Code Playgroud)
当我请求继承动态ViewPage的 ServiceStack Razor页面时,过滤器不会为我启动
示例/Default.cshtml:
@inherits ViewPage
<!DOCTYPE html>
<html>
<head>
<title>HOME</title>
...
...
ETC
Run Code Online (Sandbox Code Playgroud)
在答案的底部,在评论中,问题提出者提出了类似的行为,但没有准确地描述如何重现,所以我看不到解决方案.
有解决方案吗?我做错了吗?
UPDATE
我发现我可以直接在页面上声明属性:
@using ServiceStack.ServiceInterface
@inherits ViewPage
@{
new AuthenticateAttribute().Execute(Request, Response, this);
}
<!DOCTYPE html>
...
...
ETC
Run Code Online (Sandbox Code Playgroud)
或者我确定我可以创建一个继承ViewPage的类并在其Init方法中运行它们并在Razor页面上使用新类.
但是,这两种解决方案看起来都是无关紧要的,而且不是很干燥.
我创建了一个简单的方法来返回一个属性,我知道它是一个来自对象属性层次结构的字符串.例如,对象与具有Subproperty"Contact"的属性"Person"的"契约"和子属性(已知已经是一个字符串)"PhoneNumber"
我打算将该方法用于特定的动态绑定目的.
调用该方法如下所示:GetProperty(contract,"Person.Contact.PhoneNumber");
我想知道以下代码的性能影响:
public string GetProperty(object obj, string name)
{
string[] index = name.Split('.');
object result = null;
for (int i = 0; i < index.Length - 1; i++)
{
result = TypeDescriptor.GetProperties(obj).Find(index[i], true).GetValue(obj);
if (result == null)
return null;
obj = result;
}
PropertyDescriptor pd = TypeDescriptor.GetProperties(result).Find(index.Last(), true);
return (string)pd.GetValue(result);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我试图遵循GitHub上的仅问题访问权限帮助信息,但我无法理解问题如何从仅问题存储库传播到私有存储库.
有人可以更详细地澄清一下吗?
I am trying to determine how suitable Cassandra is for my application, as it is unknown how much we will need to scale in the future and could occur rapidly. I have been watching various segments of the C*Summit 2013.
Specifically, Axel Liljencrantz, Backend Developer at Spotify, says here that you can expect Cassandra performance to degrade over time if your model requires you to update the same row over and over.
我的模型要求是具有已知字段的"文档存储"类型,其值在几个月内变化,因为它满足各种实际要求/状态点.需要在存储的各种文档中执行各种查询和计数.
那么:是否有任何合适的方法来缓解这种情况,如果所有文件在它们保持固定之前通常具有相同的已知平均寿命,那么历史数据是什么?
通过存储版本号并在信息更新时将整个文档重写为新行,是否构思错误?
c# ×2
asp.net ×1
cassandra ×1
cryptography ×1
github ×1
performance ×1
security ×1
servicestack ×1
t-sql ×1