2012-01-29 56 views
0

我想知道什么是落后于会员饼干的想法,一个方法被称为:ASP.Net会员Cookie?

Membership.GetUser(); 

此方法返回的所有用户的信息,这种方法不访问数据库,但访问存储在cookie中我的电脑,我想知道这个cookie是如何存储的,我如何访问这个cookie并操作它。

这里是我的问题:

我有我想整合到我的网站的论坛,论坛的用户会员资格,而我的网站不,我的网站使用一个简单的用户名密码表。我已经修改了与会员登录有关的一些程序,并且仍然当我进入论坛时,它以管理员身份登录我,因为我在更改数据库中的任何内容之前使用它,我找到了所有我找到的Cookie是6个饼干,没有子项,但是当上面的方法被调用时,它会获得所有的信息。我想知道他们从哪里得到。

编辑: 我错了,它不访问数据库,我现在的问题我可以覆盖在成员中的getUser方法并指定另一个程序,它

+0

的成员提供有操作部件完整的API相同的应用程序池共享会话单独的应用程序。你为什么要操纵cookie? (即帮助我们解决问题,而不是您最初尝试解决问题的方法。请参阅* [XY问题](http://www.perlmonks.org/?node_id=542341)*。) – Richard 2012-01-29 09:54:01

+0

请参阅下面的更新。 – 2012-01-29 10:09:28

回答

0

错误。 Membership.GetUser()实际上访问数据库。它从会员表中提取数据。这些数据不会存储在cookie中。存储在cookie中的唯一东西是用户的用户名和身份验证票据。

编辑:

根据您的更新,您需要实现一个自定义的成员提供与您的身份验证工作。如果论坛用户会员,那么你没有其他选择,否则你将不得不重写论坛。

看来你很困惑,因为你的数据库中没有成员表。这很可能是因为成员资格连接字符串指向的数据库不同于您用于数据的数据库。这通常会自动生成并存储在项目文件夹中的App_Data文件夹下。

编辑2:

根据您的额外编辑,是的。你想做什么,就可以做什么。但是你需要实现一个自定义的Membership提供程序。

http://msdn.microsoft.com/en-us/library/ie/f1kyba5e.aspx

+0

你完全正确,你能回答我的问题吗?谢谢。 – 2012-01-29 10:08:02

+0

另外:一个定制的会员提供商可能(大部分)是一个现有的薄包装。您不需要一个完全绿色的字段实现来在一个地方添加一个小逻辑(提供您确保更改不会与您刚刚重用的方法的操作不一致)。 – Richard 2012-01-29 12:04:12