我有一个Web应用程序,在它的登录中,我检查用户是否存在于系统中,然后如果用户有效,则将他的使用对象添加到session
,如下所示:
[WebMethod]
public static object doLogin(string UserName, string PassWord)
{
try
{
entity = new DB();
UserName = UserName.RemoveInjection();
PassWord = PassWord.RemoveInjection().Encrypt();
Manager manager = (from m in entity.Managers
where m.UserName.Equals(UserName)
&& m.PassWord.Equals(PassWord)
select m).FirstOrDefault();
if (manager == null)
return new { Result = false };
else
{
HttpContext.Current.Session.Add("Manager", manager);
return new { Result = true };
}
}
catch (Exception ex)
{
return new { Result = "failed", Message = ex.Message };
}
}
然后,在所有网页的page_load
和所有methods
中,我按照您的说明检查会话:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Manager"] == null)
{
string close = @"<script type='text/javascript'>
window.returnValue = true;
parent.info('Invalid user.');
setTimeout(function () {
parent.window.location.href = 'AdminLogin.aspx';
}, 4000);
</script>";
base.Response.Write(close);
}
}
[WebMethod]
public static object List(int start, int size, string orderBy, string orderByType)
{
if (HttpContext.Current.Session["Manager"] != null)
// do something
else
return new { Result = "session" };
}
我的意思是有一种方法可以阻止所有页面的检查,例如过滤访问特定表单和页面。
答案 0 :(得分:0)
可能会根据角色和/或匿名(登录)在web.config中设置特殊授权。如果有帮助,您可以为不同的目录创建不同的web.config。
<system.web>
<authorization>
<!-- here. -->