2009-03-03 1 views
0

% 5Cをオンにします。ログインは、ドメイン\ユーザー名はドメイン%の5CUSERNAMEにエンコードされるように、JavaScriptからエンコードされたURLです。私は、文字列にHttpUtility.URLDecodeを使用すると、バックスラッシュをエスケープしてくれDOMAIN \\ USERNAMEを与えます。私はこれをプロファイルプロバイダに渡そうとしています(これはただ一つのバックスラッシュを必要とします)、何も得られません。C#URLDecodeは、私がパラメータとしてネットワークログイン(文字列)を受け取り、Webサービスメソッドを持っているに\\代わりに

私はstring.Replace()と同様にRegEx.Replace()を行うことを試みてきましたし、2回目のバックスラッシュを取り除くように見えることはできません。

誰もがこれを解決する方法を知っていますか?私が働いているので、私は、パラメータとして掲載されているネットワークユーザ名のファンではないので、今のところ、これは概念の単なる証拠です。しかし、私はまだこの問題を回避する方法を知りたいと思っています。私はこれをC#から解決できない場合、JavaScript側で使用できる/使用すべき別のエンコーディングスキームはありますか?

答えて

8

実際には\\に変わりません。これはデバッガの下での表示方法です。デバッガには、コードに記述したい場合に使用する文字列リテラルが表示されます。文字列をコンソールに出力すると、それは正常であることがわかります。

using System; 
using System.Web; 

class Test 
{ 
    static void Main() 
    { 
     string url = "DOMAIN%5CUSERNAME"; 
     string decoded = HttpUtility.UrlDecode(url); 

     Console.WriteLine(decoded); 
    } 
} 

出力:

DOMAIN\USERNAME 
+0

トン-27秒:( –

関連する問題