2015-01-21 1 views
0

В то время, когда значения входа хранятся в методе класса «Estb_detail», но во время выхода я даже присваиваю null этим методам, но они делают не пуст и остается заполненным теми же значениями.присвоение Null методу get set класса, но не присваивает значение null

При следующем входе в систему он снова возвращает старые значения, которые не требуются.

Estb_detail.cs:

public class Estb_detail : System.Web.UI.Page 
{ 
    public Estb_detail() 
    { 

    } 


    private string estbName; 

    public string EstbName 
    { 
     get { return HttpContext.Current.Application.Contents["estbName"] as string; } 
     set { HttpContext.Current.Application.Add("estbName", value); } 
    } 
    private string estbEmail; 

    public string EstbEmail 
    { 
     get { return HttpContext.Current.Application.Contents["estbEmail"] as string; } 
     set { HttpContext.Current.Application.Add("estbEmail", value); } 
    } 
    private string companyId; 

    public string CompanyId 
    { 
     get { return HttpContext.Current.Application.Contents["companyId"] as string; } 
     set { HttpContext.Current.Application.Add("companyId", value); } 
    } 

    private string type_account; 

    public string Type_Account 
    { 
     get { return HttpContext.Current.Application.Contents["type_account"] as string; } 
     set { HttpContext.Current.Application.Add("type_account", value); } 
    }  
} 

Login.aspx.cs:

public partial class Login : Estb_detail 
{ 
protected void _btnLogin_Click(object sender, EventArgs e) 
    { 
    using (Estb_cntxtDataContext context = new Estb_cntxtDataContext()) 
       { 
         var user = (from a in context.tblCustomers where a.Email == _txtName.Text && a.Password == _txtPassword.Text select a).FirstOrDefault(); 


         if (user != null) 
         {      
          Session["Establishment"] = user.Name; 
          EstbName = user.Name; 
          EstbEmail = user.Email; 
          CompanyId = user.nCompany_Id.ToString(); 
          Type_Account = "Master"; 

          Response.Redirect("Establishment_Controller.aspx"); 
         } 
       } 
    } 
} 

Establishment_controller.aspx.cs:

public partial class Establishment_Controller : Estb_detail 
{ 
    protected void _Logout_Click(object sender, EventArgs e) 
    { 
     Session.Clear(); 

     EstbName = ""; 
     EstbEmail = ""; 
     CompanyId = ""; 
     Type_Account = ""; 
     Response.Redirect("Login.aspx");   
    } 
} 

ответ

0

Вызов HttpApplicationState.Add() несколько раз с тем же ключом воли добавьте несколько значений, а не перепишем существующее значение.

http://codeverge.com/asp.net.state-management/httpapplicationstate-allows-duplicat/307305

В инкубаторе, вам нужно будет проверить, если значение уже существует, и если это произойдет, изменить его значение с помощью оператора доступа к массиву. В качестве альтернативы используйте .Remove(), чтобы удалить ключ перед его добавлением.