I do not see a situation where you should worry about the fact that the Session value on the server side is obtained through an exploit on the client side. There is some concern that fake OpenID providers trick users into submitting credentials due to the lack of status for OpenID, but this is generally unreasonable.
The implementation seems acceptable, but given that you are using ASP.NET, you should consider using IIdentity and this ASP.NET OpenID provider:
http://code.google.com/p/dotnetopenid/
It is well tested and has quite a bit of security code and API support built into it.
source
share