2013-10-08 5 views
0

У меня есть кнопка, где вы можете создать новый пароль, введя его и повторно введя.
Если оба пользователя одинаковы, пароль следует хранить где-то на телефоне для дальнейшего использования.Сохранить пароль на устройстве

На данный момент я могу игнорировать безопасность паролей.

Как самый простой способ сохранить и прочитать пароль на устройстве?

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

Вы можете использовать NSUserDefaults и если ваше приложение использует CoreData вы можете использовать это, а также , –

+0

Можете ли вы сделать образец кода? – Lobbe

+1

Не обижайтесь, но Stack Overflow не просят какой-либо код. Сначала попробуйте сами. Если вы застряли где-нибудь, мы можем помочь. Если я не ошибаюсь, вы хотите сделать систему входа в систему правом приложения? –

ответ

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"]; 
} 
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"]; 
} 
+0

Можете ли вы сделать это на родном? Я не использую Xcode, извините за неудобства. – Lobbe

Смежные вопросы