Laden...

welche zeichen erlauben für spalte ID??

Erstellt von multitrust vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.187 Views
M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren
welche zeichen erlauben für spalte ID??

Hallo zusammen

Über mein System kann man neue benutzer erstellen. Die PID (Personal ID) kann man sich selber aussuchen.

Nun möchte ich wissen, ob es irgendwelche Regeln gibt, indem beschrieben ist, welche Zeichen etc. für ID nicht zu empfehlen sind. Z.b. leere strings, div. sonderzeichen usw....

Was ich jetzt schon rausfiltere sind folg. zeichen und zwar mit folg. Code:


String = strString.Replace("'", "''");
SafeString = strVarGetSafeString.Replace("<", "&lt;");
String = String.Replace(">", "&gt;");
String = String.Replace("\r\n", "<BR />");
String = String.Replace("'", "&apos;");
String = String.Replace(",", ",");
String = String.Trim();


danke

458 Beiträge seit 2007
vor 15 Jahren

mhm.. nicht negative Zahlen?

be the hammer, not the nail!

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren

stimmt... habe ich gar nicht daran gedacht!!

S
33 Beiträge seit 2008
vor 15 Jahren

Nur mal so als Beispiel, wie ich normalerweise LoginNamen validiere:


public static void ValidateString(string name)
        {
            if (String.IsNullOrEmpty(name))
                throw new ArgumentNullException("Name");

            for (int i = 0; i < name.Length; i++)
            {
                char ch = name[i];
                if (ch.CompareTo('_')!= 0)
                {
                    UnicodeCategory uc = Char.GetUnicodeCategory(ch);
                    switch (uc)
                    {
                        case UnicodeCategory.UppercaseLetter:
                        case UnicodeCategory.LowercaseLetter:
                        case UnicodeCategory.DecimalDigitNumber:
                            break;
                        default:
                            throw new ArgumentOutOfRangeException("'" + name + "' invalid input.");
                    }
                }
            }
        }

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren

@syst3m... dein code ist klasse!!!

bei meinem ist mir augefallen, dass aus irgendwelchen Gründen die Trim() Methode nicht richtig funzt. Es werden trotzdem PID's mit leerstrings gespeichert... fehler habe ich jedoch noch nicht gefunden... naja..

M
multitrust Themenstarter:in
232 Beiträge seit 2009
vor 15 Jahren

doch noch eine frage... warum machst du einen CompareTo('_') ??? underline???

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo zusammen

Die Möglichkeit mit der Unicodecategory kannte ich noch nicht, sieht nett aus.
Ich arbeite auch lieber mit einem Verfahren dass die nichterlaubten (aber gewollten) in erlaubte umwandelt und dann nur die erlaubten annimmt.

Ein Beispiel um eine saubere Url zu bekommen:

public static string GetCleanUrl(string dirtyUrl) {
    if (dirtyUrl == null)
        return String.Empty;

    string allowedChars = "abcdefghijklmnopqrstuvwxyz1234567890-_";
    dirtyUrl = dirtyUrl.ToLower();
    dirtyUrl = dirtyUrl.Replace("\x00e4", "ae");
    dirtyUrl = dirtyUrl.Replace("\x00fc", "ue");
    dirtyUrl = dirtyUrl.Replace("\x00f6", "oe");
    dirtyUrl = dirtyUrl.Replace(" ", "-");

    StringBuilder cleanUrl = new StringBuilder();
    int i = 0;
    int length = dirtyUrl.Length;
    while (i < length) {
        char c = dirtyUrl[i];
        if (allowedChars.IndexOf(c) > -1) {
            cleanUrl.Append(c);
        }
        i++;
    }
    return cleanUrl.ToString();
}

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

3.971 Beiträge seit 2006
vor 15 Jahren

Ich arbeite gerade mit WIX (Windows Installer Xml) und dort können für IDs nur Buchstaben, Zahlen, Strichunten und Punkt verwendet werden, wobei die ID mit einem Buchstaben oder Strichunten beginnen muss.

Ich persönlich finde diese Zeichen als ausreichend. Vorteilhaft ist der Punkt, damit lässt sich gut eine Hierarchie für den Benutzer aufbauen.

Zum Validieren würde ich hierfür Regex verwenden.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...