2010-11-30 10 views
3

セッションクッキー名を中程度の信頼レベルで取得できますか?以下のコードは完全信頼で動作しますが、中程度の信頼レベルでセキュリティ例外がスローされます。セッションクッキー名を取得する

string sessionCookieName = ((SessionStateSection)WebConfigurationManager.GetSection("system.web/sessionState")).CookieName; 
+0

をあなたがこれを必要とするのはなぜ? –

+0

私はJavaアプレットを使用しており、アプレットがWebサーバーに要求を出したときにセッション値を保持するためにセッション名とセッションIDを渡す必要があります。 –

答えて

1

あなたは、要求に含まれていたクッキー文字列を取得するには、RequestオブジェクトからHTTP_COOKIEサーバー変数を使用することができます。何をしたいが、web.configファイルからセッションクッキー名を取得する場合

string cookieString = Request.ServerVariables["HTTP_COOKIE"] 

は、なぜあなたはのappSettingsセクションでは、セッションクッキー名を含む、単純なエントリを追加しませんか?

<appSettings>  
     <add key="SessionCookieName" value="__SessionCookieName"/> 
    <appSetting> 

    <sessionState cookieName="__SessionCookieName" />   

その後、次のコードを使用してweb.configファイルの設定値を読み取ることができます。

public static bool SessionCookieName 
{ 
    get { return ConfigurationManager.AppSettings["SessionCookieName"]; } 
} 
+0

助けてくれてありがとう!私はSessionID - Session.SessionIDのようないくつかのプロパティがSession.SessionCookieNameのようなものがあることを期待していました。しかし、それは簡単な方法がないようです:( –

+0

@Andrey:ASP.Netには、認証用に2つのCookieとセッション用に2種類のCookieがあります。HTTP_COOKIEサーバー変数には両方が含まれています。 – ArBR

+3

その他 - ArceBritoのソリューションはDRYの原則(自分自身を繰り返さないでください)を尊重するものではないため、開発チームは必要性を認識していない場合でも両方の場所で何かを更新できなくなる危険性があります。可能な場合は1つのエントリ(パフォーマンスには影響しません)。 – Chris

関連する問題