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

输入非登录页面,转到登录页面,阻止用户不登录访问其他页面
我用的是表单验证的方法,我能实现页面的定位,现在的问题是我登录成功后还是定位在这个login.aspx页面,不知道在用户登录后是不是有个什么操作,来证明已经登录了,而不需要停留在login.aspx了,   请问这个怎么判断用户登录了,而不去停留在login.aspx中
<authentication       mode= "Forms ">          
                        <forms       name= "hrm2000 "       loginUrl= "login.aspx "/>      
</authentication>      
<!--           授权此节设置应用程序的授权策略。可以允许或拒绝用户或角色访问      
                  应用程序资源。通配符: "* "       表示任何人, "? "       表示匿名          
                (未授权的)用户。      
-->      
<authorization>      
<!--       <allow       users= "* "/>       -->          
              <deny       users= "? "/>
</authorization>

------解决方案--------------------
Global.asax中

Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
Response.Redirect( "Login.aspx ")
End Sub
------解决方案--------------------
可以通过cookie来判断
------解决方案--------------------
首先你要允许Login.aspx页面任何人可以访问。

下面是我的代码。

/// <summary>
/// 发送窗体验证到浏览器
/// </summary>
/// <param name= "AuthName "> 用户名 </param>
private void SetCookies(string AuthName)
{
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
AuthName,
DateTime.Now,
DateTime.Now.AddMinutes(30), // value of time out property
false, // Value of IsPersistent property
string.Empty,
FormsAuthentication.FormsCookiePath);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authCookie = new HttpCookie(
FormsAuthentication.FormsCookieName,
encryptedTicket);
Response.Cookies.Add(authCookie);
}
用于发放Forms用户验证,可以适合你上面的条件。
------解决方案--------------------
看看:

http://support.microsoft.com/kb/301240/zh-cn

------解决方案--------------------
用Session
------解决方案--------------------
PS:调用我那个函数即可实现登陆,用户名你自定义。

另外有roles这个功能,我尝试过,出于各种原因用不起来,所以不建议使用roles。
------解决方案--------------------
FormsAuthentication.name==null