SID'nin geçerli olup olmadığını kontrol etmek için normal ifadeye güvenmek iyi bir fikir değildir. Tek geçerli SID sürümü 1'dir, bu nedenle bu regex 9 geçerli bir sürüm değilse S-9-(\d+-){1,14}\d+
geçerli olduğunu düşünür. Ancak, regex'in yalnızca sürüm 1'e izin vermek için başarısız olması, yeni bir SID sürümü veya tamamen yeni bir SID formatı tarafından yapılmalıdır. Bunu yapmanın daha iyi yolu, SID'nin geçerli olup olmadığına sistemin karar vermesine izin vermektir. Sadece bu yapın:
string notSureIfSID = "S-9-5-76-1812374880-3438888550-261701130-6117";
bool sidIsValid = false;
bool sidIsAccount = false;
try {
SecurityIdentifier sid = new SecurityIdentifier(notSureIfSID);
sidIsValid = true;
sidIsAccount = sid.IsAccountSid();
}
catch (ArgumentException) {
// Handle invalid SID
}
(örneğin sürüm 1 değilse veya alt makamların sayısı 1'den 15'e veya daha az üzerinde ise) yapıcısı ArgumentException olacak SID biçimi geçersiz edin. SID'nin gerçek bir mevcut hesap olup olmadığını kontrol etmek isterseniz, SecurityIdentifier
numaralı telefondan IsAccountSid
numaralı telefonu arayın.
Doğrulama veya doğrulama mı arıyorsunuz? Doğrulama için SID'den bir hesap almayı deneyin. ([Bir SID'den C# içindeki bir hesap adına nasıl dönüşebilirim?] (Http://stackoverflow.com/q/499053/1386111)) –
Hayır, doğrulama için arıyorum. Teşekkürler –
@ChibuezeOpata Doğrulama için bir çözüm önerdi - "Doğrulama için SID'den bir hesap almayı deneyin." – DGibbs