我有一个使用Active Directory进行身份验证的站点。我正在使用实体框架,我需要存储对这个用户的引用。我不想在数据库中保存AD用户。一种方法是将用户guid作为字符串存储在实体中。如何使用Entity Framework存储Active Directory用户GUID?
class Entity
{
String UserGUID ;
}
是否有可能是这样的:
class Entity
{
UserPrincipal user;
}
而不是传递字符串GUID传递一个对象,使实体框架治疗的关联有所如同它的UserPrincipal对象是一个实体。它不一定是UserPrincipal类,它可以是另一个类。我想处理对象而不是字符串。查询活动目录不是问题。
总之,我希望能够通过在数据库中存储字符串GUID而将其作为对象加载,从而将实体与非实体类相关联。
[UPDATE]
许多类可能具有多个关联与AD用户,它可以变化,从而一个基类不是一个解决办法。例如,我可能有这样的班级:
class Message
{
public User Sender;
public User Recipient;
public List<User> MentionedUsers;
}
这不是我正在使用的班级,但它说明了我的观点。理想情况下,用户guid将存储在消息实体表中,但可以像实体框架与其他实体一样加载为用户。
我想创建User作为GUID的包装实体类,并检索静态方法的属性,但我想避免这种情况。
你首先使用代码或数据库?首先用代码来做这件事很简单,不过首先不确定数据库。编辑:其实,它也应该可能在数据库中。 – Maverick
我先使用代码。新的数据库。 – d0001
祈祷告诉你,为什么要将'Guid'存储为'string'而不是'Guid'? (http://msdn.microsoft.com/en-us/library/system.guid(v=vs.110).aspx) – Mitch