I would like to know How to generate the same nonce/secret key whatever in C# for asp.net application?
Read up on HTTP Digest Authentication. It's described pretty well there.
Also doesn't this affect the performance of the application like 100 thousand users use it and each time the method has to go through encryption, random number generation etc..?
Hardly. Remember: the connection to the user's desktop is the bottleneck. Checking a nonce is generally trivial, since it's a simple hex digest of data already available.
Is there any way I can check if posted data is what was actually posted. Checking the integrity of posted data?
Read up on Cross Site Request Forgery (CSRF).
Do you need to follow design patterns to secure application logic?
Does one exist to make your application at the least somewhat secure?
Lots and lots.
There is no "somewhat" secure. There's secure and there's broken.
Start with the OWASP top-ten list and read up on the vulnerabilities.
Then, find a framework that does this for you and use the framework.
Don't build your own. It's already been done for you. Just pick a framework that does it.
Why security is binary. "perfect security" is an oxymoron -- it only exists where there is no information exchanged.
"Security" doesn't mean "perfect". It means "as good as present technology permits under the circumstances that we've agreed to share information, and I have to assume you're not lying."
If you want "somewhat secure", then you are implementing "somewhat insecure".
If you're going to implement somewhat insecure, you must actually choose the specific kind of insecurity you are going to implement. Generally, you will must either give private information away, allow information to be adulterated or allow a denial of service attack. Pick some combination of things you are going to implement in a "somewhat secure" application.
Try to avoid choosing the "give away the root password" insecurity if you can. Usually, that is isomorphic to "as secure as possible".