繁体   English   中英

从C#文件中读取特定内容

[英]Read specific content from a file in c#

我想从.ser(Java序列化对象)文件中检索用户名和密码。

创建用户时保存到的C#。

ArrayList spnavn;
spnavn = FileController.ReadFile(Server.MapPath 
("~/App_Data/MinPlayers.ser"));  
Application.Set("Players", spnavn);

用户也具有ID之类的值,但我只想获取名称和密码,因此用户可以将其用作登录名。

我可以通过某种方式执行.getName或.getpassword使其从文件中取出吗? 或任何其他解决方案?

基本上,我是通过网站管理员页面创建一些用户的,并将其放入名为MinPlayers.ser的文件中。 所以我想再次获取信息,但是我想要的唯一信息是将在我的首页的登录表单中使用的名称和密码。

public class FileController
{
    public static void Writefile(ArrayList a, string filnavn)
    {
        FileStream fs = new FileStream(filnavn, FileMode.Create, 

FileAccess.Write, FileShare.None);
        BinaryFormatter bf = new BinaryFormatter();
        bf.Serialize(fs, a); // tag vores object, lav til binary 

string, og smid den videre
        fs.Close();
    }
    public static ArrayList ReadFile(string filnavn)
    {
        FileStream fs = new FileStream(filnavn, FileMode.Open, 

FileAccess.Read);
        BinaryFormatter bf = new BinaryFormatter();
        ArrayList a = (ArrayList)bf.Deserialize(fs);
        fs.Close();
        return a;

    }

}

http://msdn.microsoft.com/en-us/library/e474a3yk.aspx

如果您看一下我发布的链接:例如,我想从文件中删除customerAddress.Region和customerAddress.City,而不是将具有所有值的WHOLE字符串从文件中删除?

customerAddress.Street = "1111 White Street";
customerAddress.City = "Sturtevant";
customerAddress.Region = "WI";
customerAddress.PostalCode = "53177";
customerAddress.CacheAddress();

首先,使用.NET BinaryFormatter.Serialize方法时,您不会想到Java序列化对象,因为您肯定不会在J#中进行开发。 因此,您提供的MSDN链接无关紧要。

通过提供的代码,并提供一些可Serializable User类:

[Serializable]
public class User
{
  public string id;
  public string pwd;
  public string someOtherInterestingStuff;
}

这应该工作得很好:

public void Test()
{
  ArrayList a = new ArrayList();
  a.Add(new User() {id = "001", pwd = "pass1"});
  a.Add(new User() {id = "002", pwd = "pass2"});
  Writefile(a, "testusers.bin");
  a = ReadFile("testusers.bin");
  User user = (User) a[0];
  Console.WriteLine(user.id + " " + (user.pwd);
}

其他属性仍然存在,但是您不必使用它,因此这应该不是问题。 还是? 如果答案是肯定的,请选中此项

请注意,以这种方式(即使是以二进制形式)存储登录名/密码也不安全。 考虑使用其他内容(例如ASP.NET Identity ...)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM