输入非登录页面,转到登录页面,阻止用户不登录访问其他页面
我用的是表单验证的方法,我能实现页面的定位,现在的问题是我登录成功后还是定位在这个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