如何将 Identity.GetUserId() 变为 return Guid 而不是字符串?

How can the Identity.GetUserId() be made to return a Guid instead of a string?

我正在使用 ASP.Net Identity 2,但很快希望在它变得更 stable 时更改为 Identity 3(有人知道那可能是什么时候吗?)。这是我的代码示例:

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

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

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

那么如何获取用户 UserId 并将其放入作为 Guid 的 ModifiedBy 中?

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

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

您可以使用 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()