我正在使用一个项目,该项目使用Process.start()重定向到实时Web OAuth以获取请求令牌 在本地IIS服务器上部署站点后,它停止工作,并且不执行任何重定向 这是我的代码
authorizeUri.AppendFormat("?client_id={0}&", appId);
authorizeUri.AppendFormat("scope={0}&", "wl.signin");
authorizeUri.AppendFormat("response_type={0}&", "token");
authorizeUri.AppendFormat("redirect_uri={0}", HttpUtility.UrlEncode("http://scarnetdomain.com/Default3.aspx/"));
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = authorizeUri.ToString();
Process.Start(startInfo);
答案 0 :(得分:11)
网络服务器不是您的桌面。
Process.Start将在运行代码的机器上启动进程。因此,在您的代码中,它将在IIS服务器上启动一个进程。作为一个额外的好处,取决于您如何配置IIS及其运行的帐户,因为它可能没有桌面访问权限,因此启动生成浏览器的进程最多会失败,更糟糕的是启动IE并离开在那里,占用记忆。
请使用DotNetOpenAuth之类的现有OAuth库或MVC4或MVC5中的内置支持