0

PHPを使用して、System.Web.Securityにあると思われるC#のFormsAuthenticationメソッドで暗号化されたCookieにアクセスする必要があります。Forms.Authentication.decryptをPHPソリューションに移植しようとして炎上したので、Monoを使用して、暗号化されたCookieをForms.Authentication.decryptに渡す小さなコンソールアプリを作成しようとしていますが、次のエラーが発生します。

タイプまたは名前空間の名前Security' does not exist in the namespace System.Web'。アセンブリ参照がありませんか?

コードは次のとおりです。

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Security.FormsAuthenticationTicket;


namespace Cookie
{
    public class CookieDecrypt
    {
        public static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                throw new System.ArgumentException("Please invoke like: mono CookieDecrypt.exe CookieString", "args");
            }

            string CookieValue = args[0];
            FormsAuthenticationTicket authTicket  = FormsAuthentication.Decrypt(CookieValue);
            Console.WriteLine(authTicket.Expired);
        }
    }
}

}

/usr/lib/mono/2.0/にSystem.Security.dllなどの.dllがいくつか表示されますが、System.Web.Security.dllには表示されませんが、http: //docs.go-mono.comで使用可能であることが示されています( forms.authentication encodeは、FormsAuthenticationクラス(System.Web.Security.FormsAuthentication)を含むいくつかの結果を出します。

私はこのようにコンパイルしています:mcs test.cs

ご存じのとおり、私はc#とmono(数時間前にインストールされたもの)を初めて使用します。誰かが私が何が起こっているのか、そしてそれをどのように修正できるのかを理解するのを手伝ってもらえますか?

4

1 に答える 1

1

FormsAuthenticationTicketはクラスです。usingステートメントは名前空間専用です。必要な名前空間はSystem.Web.Securityです。ただし、FormsAuthenticationTicketはSystem.Web.dllアセンブリにあります。

.NETドキュメントは、実際には、どの名前空間とどのアセンブリクラスが含まれているかについて非常に明確です。例:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthenticationticket.aspx

ご覧のとおり、継承階層のすぐ下には、アセンブリと名前空間の両方があります。

于 2013-01-16T18:47:15.603 に答える