4
|
Jeff Ancel · 技术社区 · 16 年前 |
![]() |
1
3
你可以通过
implementing
你习俗
Membership Provider
或扩展现有的。提供程序基于密钥(或仅按用户名)存储用户信息,并提供对
MembershipUser
类,您可以随意扩展。所以当你打电话的时候
当你打电话
|
![]() |
2
2
杰夫 正如我在对你上述问题的评论中所说,你 必须 使用claimedidentifier作为用户名——即setAuthcookie的第一个参数。这是一个巨大的安全原因。如果您想了解更多的原因,可以在dotneopenid@googlegroups.com上启动一个线程。 关于整个用户对象的问题…如果你想把它作为一个cookie发送下去,你必须将你的用户对象序列化为一个字符串,然后你必须以某种方式对它进行签名以防止用户篡改。您可能还想加密它。废话废话,这是一个很大的工作,你最终会得到一个巨大的cookie,在你不想要的每一个Web请求中来回移动。 我在我的应用程序上所做的是向名为currentuser的global.asax.cs文件中添加一个静态属性,以解决您的状态问题。这样地:
注意,我将结果缓存在特定于单个HTTP请求的httpcontext.current.items字典中,并将用户回迁保持在一次命中——并且仅在页面实际需要当前用户信息时第一次回迁。 因此,页面可以轻松获取当前登录的用户信息,如:
|
![]() |
3
1
一种方法是向控制器注入一个类,该类负责检索当前登录用户的信息。我就是这样做的。我创建了一个名为WebUserSession的类,它实现了一个名为iuserSession的接口。然后,在创建控制器实例时,我只使用依赖注入将其注入到控制器中。我在我的接口上实现了一个名为getcurrentuser的方法,它将返回一个用户对象,然后我可以在需要时通过将其传递给视图在我的操作中使用该对象。
如您所见,如果需要,现在您将有权检索用户。当然,如果愿意,可以将getcurrentuser方法更改为首先查看会话或其他方法,这样就不会一直访问数据库。 |
![]() |
Andrus · 如何在Linux中阅读期刊 5 月前 |
![]() |
Miranda · 读取xml文件时路径错误中有非法字符 6 月前 |
![]() |
Vengat Ramanan · 用户登录Asp时隐藏导航和页脚。网络核心 11 月前 |
![]() |
s15199d · mvc MapController路由/类别名称在这里 12 月前 |
![]() |
Primdonm · 如何将自定义列表中的字符串值格式化为货币格式? 1 年前 |
|
Kiryl · Sitecore中自己的控制器 1 年前 |
|
Farid · 如何从数据库中填充Resource.resx文件值? 1 年前 |