У меня есть веб-приложение, и в это Логин, я проверить, что пользователи существует в системе или нет, то, если пользователь был действительным, добавьте его использование объекта session
, как вы видели ниже:Как разрешить пользователям веб-формы ASP.Net?
[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" };
}
Я имею в виду, что есть способ предотвратить от этой проверки во всех страницах, что-то вроде фильтра для доступа к определенным формам и страницы.
написать код проверки сессии на главной странице –
есть ли лучший способ, чем использовать мастер-пиг? –