前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于Membership/Role您可能不知道的细节

关于Membership/Role您可能不知道的细节

作者头像
菩提树下的杨过
发布2018-01-23 10:47:25
5820
发布2018-01-23 10:47:25
举报

1.关于System.Web.Security.Membership.ValidateUser("username", "password")

每次调用这个时,您注意到背后都执行了哪些sql语句吗?

(a)用户名不存在时,将执行以下语句 exec dbo.aspnet_CheckSchemaVersion @Feature=N'Common',@CompatibleSchemaVersion=N'1'

exec dbo.aspnet_CheckSchemaVersion @Feature=N'Membership',@CompatibleSchemaVersion=N'1'

exec dbo.aspnet_Membership_GetPasswordWithFormat @ApplicationName=N'APP_LUCKTY',@UserName=N'username',@UpdateLastLoginActivityDate=1,@CurrentTimeUtc=''2009-06-02 12:22:34:563''

(b)用户名存在时,除上面的语句外,还将多执行以下二条语句 exec sp_reset_connection

exec dbo.aspnet_Membership_UpdateUserInfo @ApplicationName=N'APP_LUCKTY',@UserName=N'yjmyzz@126.com',@IsPasswordCorrect=0,@UpdateLastLoginActivityDate=1,@MaxInvalidPasswordAttempts=999,@PasswordAttemptWindow=999,@CurrentTimeUtc=''2009-06-02 12:26:04:173'',@LastLoginDate=''2009-06-02 12:15:53:860'',@LastActivityDate=''2009-06-02 12:15:53:860''

关于sp_reset_connection,这个是干啥用的?

http://msdn.microsoft.com/zh-cn/library/ms187961(SQL.90).aspx上的解释

sp_reset_connection 存储过程由 SQL Server 用来支持事务中的远程存储过程调用。从连接池中重用连接时,该存储过程还将导致激发Audit Login 和 Audit Logout 事件。

2.if (User.Identity.IsAuthenticated){...}或if (User.IsInRole("RoleName")){...}时,系统是从哪里知道当前用户是否已经登录(或是否属于某一角色)?

(a.猜测一:)会查询数据库吗?当然不会,不信可以监测一下数据库的sql语句 (b.猜测二:)是在Session里吗?也不是,不信EnableSessionState="False"再试下,好象还是能运行 (c.猜测三:)是在Cookie里吗?对了,不信把Cookie禁用掉(建议用最BT的办法,把Documents and Settings\Administrator\Cookies目录设置为任何用户都无权读取),然后就登录不了系统

3.除了FormsAuthentication.SignOut(),还有其它办法注销“当前”用户吗,或者如何注销“指定”用户?

从2中很容易想到,只要能找到特定用户的客户端Cookie,并使其过期就可以了,看下面的代码: HttpCookie _cookie = FormsAuthentication.GetAuthCookie(userName, true); _cookie.Expires = DateTime.Now.AddDays(-1); HttpContext.Current.Response.Cookies.Add(_cookie);

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2009-06-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档