2015-03-21 1 views
0

У меня есть веб-приложение, и в это Логин, я проверить, что пользователи существует в системе или нет, то, если пользователь был действительным, добавьте его использование объекта 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" }; 
} 

Я имею в виду, что есть способ предотвратить от этой проверки во всех страницах, что-то вроде фильтра для доступа к определенным формам и страницы.

+0

написать код проверки сессии на главной странице –

+0

есть ли лучший способ, чем использовать мастер-пиг? –

ответ

0

возможно настроить специальную авторизацию в web.config на основе роли и/или анонимности (вход в систему). вы можете создать другой web.config для разных каталогов, если это поможет.

<system.web> 
    <authorization> 
     <!-- here. --> 
Смежные вопросы