2012-02-09 16 views
0

web.confiの私のroleManagerは次のようになっています。クッキーのロールをキャッシュしていない - ASP.NET

<roleManager enabled="true" 

    cacheRolesInCookie="true" 
    cookieName=".ASPR0LE3S" 
    cookieTimeout="115" 
    cookieSlidingExpiration="true" 
    cookieProtection="All" 
    createPersistentCookie="false" 
    defaultProvider="CustomizedRoleProvider">    

    <providers>     
    <add name="CustomizedRoleProvider" 
    type="System.Web.Security.SqlRoleProvider" 
    connectionStringName="MyConn" 
    applicationName="/MyApp"/>    
    </providers> 

</roleManager> 

私がやるべきことは、自分のロールをクッキーに保存することです。コードはそれを保存すると思われますが、FireFoxのクッキーを見るとASPRという名前のクッキーはありません...何が問題なのでしょうか?私は何かが欠けている。

+0

これらを表示するには、最初にログオンする必要があります。あなたはログオンしますか? – Aristos

+0

私はログオンしていて、見ることができませんでした。しかし、私がログオンしていなくても、私はまだそれを見ることができるはずです。私の推測は、決して作成されていないということです。私はあまりにも多くの役割を持ち、サイズ制限を超えている可能性がありますか?私はそれのためにするべきではありません –

+0

はい、クッキーには制限があり、ブラウザーでそれを保存できないか、クラッシュする可能性があるので、ユーザーに多すぎる役割を使用すると回避できます。また、あまりにも多くのページを遅延させ、安全ではありません。 – Aristos

答えて

-1

まず、クッキーにロールをキャッシュすることは、その情報を盗み/操作してロールを変更するために使用する可能性があるため、あまり安全ではありません。

Can some hacker steal the cookie from a user and login with that name on a web site?

第二に、あなたが、この情報は、サイトへのすべての呼び出し上を前後に移動して、余分なオーバーヘッドを追加の情報はCookieに保存します。ここではこれについての質問です。

ロールが多すぎると、ブラウザがブラウザに保存できない場合や、他のCookieが保存できないことがあります。場合によっては、このクッキーリーチの限界のためにクラッシュやホワイトページなど、ブラウザから奇妙な動作が見られることがあります。

可能な限り最小限のクッキー情報を設定してください。クッキーの制限に関する

いくつかのより多くの情報:クッキーの
http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/
What are the current cookie limits in modern browsers?

役割は、彼らが使用した後に記録された、暗号化された表示することができますdocsから

+0

ロールを別のCookieに格納するときにASP.NETロールプロバイダがどのように機能するのかわかりませんが、このような情報をCookieに格納しないという古くからの推奨はあまりにも一般的です。適切なセキュリティ上の予防措置を考えれば、必ずしも悪い考えではない、中間者やハイジャックの手法からクッキーを保護する方法はたくさんあります。 – Chris

+0

@Chris私はあなたの主張を受け入れます。ここで問題となるのは、安全な暗号化を行うとクッキーが大きくなりすぎることです。ブラウザがそれを拒否し、大きなオーバーヘッドが発生する可能性があります。そうすれば、あなたはもう一方を失うでしょう。 – Aristos

+0

少なくとも今のところ私のアプリケーションはローカル(私たちのネットワーク上)ですので、セキュリティは問題+オーバーヘッドにはなりません。私は約10の役割を持っています。 –

0

。:

Web.configファイルでCacheRolesInCookieプロパティがtrueに設定されている場合、ロール情報各ユーザーはクッキーに格納されます。ロール管理がユーザーが特定のロールに属しているかどうかを確認するときは、ロールプロバイダが呼び出される前にロールクッキーがチェックされてから、データソースのロールリストがチェックされます。 Cookieは、最も最近検証されたロール名をキャッシュするように動的に更新されます。

初めて役割を確認しようとするまで、役割はCookieに保存されません。ロールプロバイダがデータソースでユーザーの役割を参照するような操作を実行していなくても、単にCookieにログオンし、Cookieを確認しているようです。

+0

'最初にあなたが役割をチェックしようとするまでクッキー'それは正確に何を意味するのですか?ログインに似ていませんか?ところで、私は後でクッキーを見ましたが、アプリケーションが遅いということは、クッキーをほとんどチェックしない可能性が高いことを意味します。 –

0

.NET 4.5で動作していない場合は、自分で保存する必要があります。サンプルコードhereを参照してください。

関連する問題