有没有办法去一个网址而不重定向到它?基本上我想在后台从我的应用程序中调用一个 url,以便它可以注销依赖方。
感谢帮助。
您正在尝试做的事情不会与我们竞争,因为它与您自己的身份验证实现直接相关。
基于表单身份验证的普通ASP.NET 身份验证,您将需要始终从浏览器中获取 url,因为它依赖于给定的身份验证。
您可以通过打开您的网站并登录来尝试一下,然后在您的应用程序 url 中打开其他浏览器品牌(不是浏览器窗口)......您会看到您还需要再次登录,因为身份验证是钩子进入第一个浏览器。
作为应用程序架构师,您可以通过实施另一种身份验证方式来实现这一点,通常在这种情况下,这发生在使用 Web 服务时,您首先需要一个身份验证代码(通过调用登录方法给出)并且该代码是总是需要附加到对系统的任何调用的正文或标题中。
这样,您可以轻松删除身份验证代码,并且所有过程调用都将失败。
如前所述,这不取决于我们,取决于您创建正确的 Authentication Layer。
从你的评论
就像使用WebClient对象一样简单
WebClient client = new WebClient ();
string reply = client.DownloadString (address);
要让客户端在后台访问给定的 URL,您应该对其进行 AJAX 调用,或者可能有一个带有注销 url src 的图像(尽管您必须确保也返回图像的 FileResult )。这是大多数分析包在后台调用其相关 URL 的方式。
但这里的问题是两者都不是 100% 可靠的,关闭浏览器上的 javascript 或图像,这些结果就会失败。
从您所说的来看,我认为您所追求的是用户继续访问各种页面中的任何一个,而不是特定的注销页面。如果确实是这种情况,那么您最好的解决方案实际上是双重重定向。
让您的应用程序重定向到您的注销 url,但事先将您希望他们进入的页面的 url 放入 tempdata。然后在注销页面的 actionresult 中,您可以根据需要进行注销并从 tempdata 返回重定向到 url。
如果您希望转移到新的 url 请求,您仍然可以使用
Server.TransferRequest()
这样做的问题是,如果不使用重定向,浏览器地址栏将不会反映您已将其请求移至另一个 URL 的事实。