Resetting ASP.NET password – security issues?

I’ve seen various questions regarding this issue, but there are a couple of questions that haven’t been asked. If the user forgets their password, I would like them to be able to reset it with only their email address (i.e. there’s no security question/answer). The password is stored as a salted hash, so there’s no recovery possible. Instead, I’d just like the user to enter a new password after confirming that they have requested a reset.

How to find out which account my ASP.NET code is running under?

I am getting an ‘Access to the path is denied” error message when running in debug mode. I have tried granting permissions to {MACHINENAME}ASPNET and to NETWORK SERVICE but this hasn’t made any difference. I have also tried < impersonate = true /> using an admin account, this also made no difference. So how do I establish exactly which account is being used?

Is encrypting session id (or other authenticate value) in cookie useful at all?

In web development, when session state is enabled, a session id is stored in cookie(in cookieless mode, query string will be used instead). In asp.net, the session id is encrypted automatically. There are plenty of topics on the internet regarding how you should encrypt your cookie, including session id. I can understand why you want to encrypt private info such as DOB, but any private info should not be stored in cookie at first place. So for other cookie values such as session id, what is the purpose encryption? Does it add security at all? no matter how you secure it, it will be sent back to server for decryption.