Question: I am using asp.net 4.
i wonder if it will be secure to caching sensitive data?
is it dangerous in manner of security or any other security issues?

Answer: 
As per Microsoft's pattern & practices this what they suggest

[Do not cache sensitive data](http://msdn.microsoft.com/en-us/library/ff650867.aspx)

> 
> If your service method contains data that is sensitive, such as a
>  password, credit card number, or account status, it should not be
>  cached. If sensitive data is cached on the client machine, it has
>  serious security implications because it leaves interesting data
>  available to attackers.
> 
> 
> Perform the following steps to ensure that sensitive data is not
>  cached:
> 
> 
> Review operations for sensitive data. Review all of your operations
>  for usage of sensitive data. This could include but is not limited to:
>  Information that either contains personally identifiable information
>  (PII) or can be used to derive PII that should not be shared with
>  users Information that a user provides that they would not want shared
>  with other users of the application Information that comes from an
>  external trusted source that is not designed to be shared with users
>  Review the operations for caching of sensitive data. Review how each
>  operation manages sensitive data and ensure that it is not cached.
>  There are three patterns of sensitive data caching that you can review
>  for: Custom caching code such as use of a Dictionary or SortedList
>  object Use of the ***ASP.NET cache via System.Web.Caching.Cache***. Use of
>  an Enterprise Library caching block
> 
> 
>
I tend to cache the encrypted data and only do decryption at the point of request. Finally zeroing out the memory.

Guess if it was left in memory, in plain text, it would not be too hard for an attacker to work things out from a memory dump.