使用数据库信息生成Guid

时间:2012-07-29 13:40:20

标签: c# .net asp.net-mvc security asp.net-web-api

我正在开发ASP.NET MVC WEB API服务。随处可见我需要安全令牌。我有一个想法,使用dtabase信息生成guid。对于isntance我需要从db获取实体,然后在这个信息中使用id,datecreated和crete guid。它将是将被发送给客户的令牌。所以他可以访问他的数据。

问题是我不知道如何生成它。请告诉我一些让它有效的建议。

我找到了有趣的文章http://www.singular.co.nz/blog/archive/2007/12/20/shortguid-a-shorter-and-url-friendly-guid-in-c-sharp.aspx来缩短GUID。

任何帮助将不胜感激, 迪马。

1 个答案:

答案 0 :(得分:1)

我只会在每个实体中存储AccessKey uniqueidentifier not null unique。你可以把它交给客户。这样你就不需要加密加密或散列。

请确保使用Guid.NewGuid(),因为它不具有加密功能。使用此:

public static class SecureGuidGenerator
{
    [ThreadStatic]
    static RandomNumberGenerator rng;

    public static Guid GetNext()
    {
        if (rng == null) rng = RandomNumberGenerator.Create();
        var bytes = new byte[16];
        rng.GetBytes(bytes);
        return new Guid(bytes);
    }
}