日期:2014-05-20  浏览次数:20517 次

Forms身份验证请教!
1.通过身份验证后,我调用:Security.FormsAuthentication.SetAuthCookie(this.txtUserID.Text,false);
然后我怎么得到登陆的用户呢?   我用User.Identity.Name得不了登陆的用户,是个空值。
2.我希望注册用户的界面不受Forms身份验证的限制,能直接进入,我记得是在Config里设置的,它可以单独允许某个页面不用验证,直接访问,但是我忘记在哪看到的了,请赐教!

------解决方案--------------------
有LoginName 控件 值从page.user.identity得到
------解决方案--------------------
首先,你需要对你的用户数据设计一个类
在每次登录成功后,要为已通过身份验证的用户创建用户数据类的对象,并把这个对象保存在当前会话缓存中(Session)
------解决方案--------------------
没错,我也是这样用的,用User.Identity.Name得到用户名。
第二个问题:你可以把需要身份验证的网页和不需要身份验证的网页分开(放在不同文件夹里),然后各放一个web.config文件,配上不同的访问权限就可以了。
------解决方案--------------------
<authentication mode= "Forms ">
<forms name= ".ASPXAUTH "
loginUrl= "Login.aspx "
protection= "All "
timeout= "30 "
path= "/ "
requireSSL= "false "
slidingExpiration= "true "
defaultUrl= "Login.aspx "
cookieless= "UseDeviceProfile "
enableCrossAppRedirects= "false "/>
</authentication>

------解决方案--------------------
在Login.aspx页面
<asp:login ID= "Login1 " runat= "server " createuserurl= "CreateUser.aspx " createusertext= "Create a New Account " />
然后CreateUser.aspx
<asp:CreateUserWizard ID= "CreateUserWizard1 " runat= "server " continuedestinationpageurl= "Home.aspx "/> <br />

上面是在web.config
<authentication mode= "Forms ">
<forms name= ".ASPXAUTH "
loginUrl= "Login.aspx "
protection= "All "
timeout= "30 "
path= "/ "
requireSSL= "false "
slidingExpiration= "true "
defaultUrl= "Login.aspx "
cookieless= "UseDeviceProfile "
enableCrossAppRedirects= "false "/>
</authentication>