我有一个按钮,您可以通过输入并重新输入来创建新密码。
当两者都相同时,密码应存储在手机的某个地方以供进一步使用。
目前我可以忽略密码安全。
如何在设备上存储和读取密码的最简单方法是什么?
btnLogin.TouchUpInside += delegate {
if(password.Exists /*My Isolated storage or password file*/){
ReturnToView();
} else{
new UIAlertView("Password doesn't exists", "Create a new password, to log in", null, "Ok").Show();
}
};
我尝试了类似的内容,但我不知道如何检查.TXT
文件中是否存在密码。
void CreateUser(){
IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
StreamWriter Writer = new StreamWriter(new IsolatedStorageFileStream("Password.txt", FileMode.OpenOrCreate, fileStorage));
btnCreateUser.TouchUpInside += delegate {
if(txtPassword.Text == txtRepeat.Text && txtPassword.Text.Length == 4){
GoBackToView(); //Login
Writer.WriteLine(txtPassword.Text);
Writer.Close();
} //here comes my else function, but that's not important.
};
}
在此之后,应在.TXT
中创建密码。
在一个名为Login()
的新方法中,我会这样做。
IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication();
StreamReader Reader = null;
try
{
Reader = new StreamReader(new IsolatedStorageFileStream("Password.txt", FileMode.Open, fileStorage));
Reader.Close();
}
catch
{
MessageBox.Show("File it not created");
}
在我的登录方法的某处,我想检查输入密码时是否创建了密码,以及当我按下登录按钮时。
答案 0 :(得分:2)
您可以将密码存储在NSUserDefaults中。只需创建以下方法并将密码传递给此方法。
-(void)storeLoginCredentials:(NSString*)password {
userDetails = [NSUserDefaults standardUserDefaults];
[userDetails setObject:password forKey:@"password"];
[userDetails synchronize];
}
然后,如果要检查用户是否已登录,可以使用以下方法:
-(BOOL)checkUserSession {
if ([userDetails objectForKey:@"password"]!= nil ) {
return YES;
} else {
return NO;
}
}
如果您想退出用户,请使用以下方法。
-(void)destroyLoginCredentials {
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
}
您可以将密码设为
-(NSString *)passwordOfUser {
return [userDetails objectForKey:@"password"];
}
答案 1 :(得分:1)
answer @manujmv posted可以翻译为:
void StoreLoginCredentials(string password)
{
var userDetails = NSUserDefaults.StandardUserDefaults;
userDetails.SetString(password, "password");
userDetails.Synchronize();
}
bool CheckUserSession()
{
var userDetails = NSUserDefaults.StandardUserDefaults;
return userDetails["password"] != null;
}
bool DestroyLoginCredentials()
{
var defaults = NSUserDefaults.StandardUserDefaults;
defaults.RemovePersistentDomain(NSBundle.MainBundle.BundleIdentifier);
return defaults.Synchronize();
}
string PasswordOfUser()
{
var userDetails = NSUserDefaults.StandardUserDefaults;
return userDetails["password"];
}