如何使Identity.GetUserId()返回Guid而不是字符串?

时间:2015-04-05 17:37:28

标签: asp.net asp.net-identity asp.net-identity-2 asp.net-identity-3

我正在使用ASP.Net Identity 2但很快就希望在它变得更稳定时更改为身份3(任何人都知道这可能是什么时候?)。以下是我的代码示例:

content.ModifiedBy = User.Identity.GetUserId();

Content表将ModifedBy存储为UNIQUEIDENTIFIER,Content对象将Guid的数据类型分配给ModifiedBy

当我查看GetUserId()的签名时,它返回一个字符串。

那么如何将用户UserId带入ModifiedBy是一个Guid?

2 个答案:

答案 0 :(得分:7)

guid可以将字符串作为构造函数

content.ModifiedBy = new Guid(User.Identity.GetUserId());

答案 1 :(得分:4)

您可以使用Guid.Parse()或Guid.TryParse()

content.ModifiedBy = Guid.Parse(User.Identity.GetUserId());

https://msdn.microsoft.com/en-us/library/system.guid.parse%28v=vs.110%29.aspx

由于我一遍又一遍地使用相同的方法,我添加了以下扩展名:

 public static class ExtensionMethods
{
    public static Guid ToGuid(this string value)
    {
        Guid result= Guid.Empty;
        Guid.TryParse(value, out result);
        return result;          
    }
}

然后我用了这个:

User.Identity.GetUserId().ToGuid()