问题:大家都说使用 forms 验证无法得到当前登录用户除了用户名之外的更多信息,经过我的一番小试验,在 forms 方式下自带的 userdata 可以为我们施展天地的地方。下面记录一下我的操作步骤备忘。
step 1: web.config 配置关键地方:
1
<!--
2
通过 <authentication> 节可以配置 ASP.NET 用来
3
识别进入用户的
4
安全身份验证模式。
5
-->
6
<authentication mode="Forms">
7
<forms loginUrl="login.aspx" defaultUrl="index.aspx"
8
name=".ztinfozero" path="/Manager"
9
slidingExpiration="true" timeout="10"></forms>
10
</authentication>
11
<authorization>
12
<deny users="?"/>
13
</authorization>
14
<!-- 实现自定义的 rolemanager 后需配置 :
<roleManager defaultProvider="providerName(类名)"
cookieName="role" cookiePath="/" enabled="true"
cookieTimeout="30" cookieSlidingExpiration="true"
cookieRequireSSL="false" cookieProtection="All"
cacheRolesInCookie="true">
<providers>
<clear />
<add name="providerName(类名)" type="providerName(类名)" />
</providers>
</roleManager>
-->
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- 实现自定义的 rolemanager 后需配置 :
<roleManager defaultProvider="providerName(类名)"
cookieName="role" cookiePath="/" enabled="true"
cookieTimeout="30" cookieSlidingExpiration="true"
cookieRequireSSL="false" cookieProtection="All"
cacheRolesInCookie="true">
<providers>
<clear />
<add name="providerName(类名)" type="providerName(类名)" />
</providers>
</roleManager>
-->
step 2: 构造 SiteUser Model
step 3: 创建用户登录代码:
step 4 : 创建登录页:
step 5: 在 global.asax 里添加 Application_AuthenticateRequest 事件以设置当前登录用户的信息: