【问题标题】:asp.net mvc - membership providerasp.net mvc - 会员提供者
【发布时间】:2011-04-26 12:46:04
【问题描述】:

对于我的 ASP.NET MVC 应用程序,我发现处理唯一标识符更加困难,因此我将自己的字段添加到 ASPNET_USERS 表中 - UserIdInt(实际上是一个 bigint!)所以大多数用户操作都使用 userIdInt 作为参考.

无论如何,我在两种方法之间进行辩论:

1)当用户登录时,从数据库中查找并将userIdInt存储在会话变量中并且任何时间会话变量溜走,重新查找并将其放回会话变量中。 (可以在 MVC 应用中使用会话,对吧?)

2) 任何时候需要执行操作,只需将 userName 传递给数据库,并在需要执行用户操作的任何时候在 ASPNET_Users 表上执行连接等操作来处理数据库端的 UserIdInt。

我非常倾向于 1)...但我想确保我走在正确的轨道上。

我首先在 Serverfault 上问了这个问题,但有人告诉我在这里问这个问题。

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    程序,

    您可能会更好地研究自定义配置文件提供程序的使用,因为这将允许您保留 aspnet_* 表(这是一个好主意,以防更高版本的 sqlserver 更改它们的操作方式)并提供为您的应用程序提供大量附加配置文件相关属性的额外好处。我不能夸大走这条路的好处,因为我发现在我的标准 asp.net 应用程序和我的 mvc 应用程序中都有这种方法非常有用。

    您可以通过以下几个链接了解其中涉及的内容: 这里有一个关于 SO 的初学者:

    Implementing Profile Provider in ASP.NET MVC

    还有一位来自我的老伙伴 Lee dumond:

    http://leedumond.com/blog/asp-net-profiles-in-web-application-projects/

    希望对你有帮助

    【讨论】:

    • 感谢您抽出时间发布链接,但它并不能完全回答我的问题(或者我看不到它)。我使用稍微不同的方法滚动了我的自定义配置文件提供程序。我接触 aspnet 表的唯一方法是将列 userIdInt 添加到 aspnet_user 表中。没有其他变化!
    【解决方案2】:

    另一种方法是更改​​表单身份验证票证,以将您的唯一 ID 添加到存储在 cookie 中的数据中。然后,通过实现自定义 IPrincipal,您可以在 User 对象可用的任何地方使用您的唯一 ID。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-28
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多