I am coming from a traditional web background and is a very newbie in smart contracts and ethereum and have a basic question. Please excuse me if it is too obvious but I am struggling to understand this point and will appreciate any help/pointers.
Typical use case when using a web application:
A user U (having a secret key) logs into an (untrusted) portal application P. P reaches out to trusted server S. S presents its own webpage to U to take the user's secret key and performs an operation OP (such as decrypting the encrypted data using user's secret key). This is done using redirection. U can suppose to have a secure storage device such as dongle or his computer, but he may not have his own client software.
How can (or should) a similar thing be done using a smart contract?
S may host a smart contract with a method OP. P may call this method. Can Solidity allow this method OP to take secret key present its own page to a user for the user to provide his secret key? Does Solidity support redirection? I think it cannot be done. In that case, how S should take secret key from U?