在主体或标识中存储用户id?ASP.Net/OpenID

在主体或标识中存储用户id?ASP.Net/OpenID,openid,membership,iprincipal,iidentity,Openid,Membership,Iprincipal,Iidentity,我有一个使用表单身份验证的ASP.NETMVCWeb应用程序。我正在使用OpenID进行身份验证 目前,我正在将openID url存储在标准GenericEntity的名称中。我还希望用户能够轻松访问数据库id 我可以通过覆盖应用程序\u AuthenticateRequest函数来创建自定义提供程序或标识 我的问题是,用户的数据库uid应该进入主体还是身份 标识的Name属性应该是openid url(用户可以有许多这样的url,但我希望在每个页面上都显示它)还是数据库uid?我现在想,我应

我有一个使用表单身份验证的ASP.NETMVCWeb应用程序。我正在使用OpenID进行身份验证

目前,我正在将openID url存储在标准
GenericEntity
名称中。我还希望用户能够轻松访问数据库id

我可以通过覆盖
应用程序\u AuthenticateRequest
函数来创建自定义提供程序或标识

我的问题是,用户的数据库uid应该进入主体还是身份


标识的Name属性应该是openid url(用户可以有许多这样的url,但我希望在每个页面上都显示它)还是数据库uid?

我现在想,我应该将用户id存储在标识中,并在会话中保留openid url


这样,我就不需要自定义身份或委托人。

效果很好。我也将用户id存储在标识中。如果您有时间自由投资创建自定义标识,这并不太难,您最终会发现其他有用的花絮存储在标识中,这将使您的会话不会充满此类内容。我还将为我的ASP.NET MVC应用程序创建自定义标识类。我觉得身份应该包含有关已通过身份验证的用户的信息。。那么,如果你想在整个网站上持久保存一些丰富的信息,为什么不扩展它呢?你是如何处理会员和角色管理的?您是否使用了默认的提供者?如果是这样的话,您是如何使用用户uid将其插入的(因为提供者使用用户名作为密钥)。