我们有一个ASP.Net MVC应用程序(网站),只是一个直接的网络应用程序。它需要连接的URL是端口14015上的ASP.Net WebAPI2 Web服务.MVC应用程序使用WebClient类匿名调用Web服务;通过限制哪些IP可以连接到Web服务来保护Web服务。除了IP之外,没有授权模式可以访问。
using (WebClient client = new WebClient())
{
//****************************
// We make the web service call like this:
//****************************
string url = @"http://secure.example.com:14015/lms/SSOKey/1158341";
string key = client.DownloadString(url);
//****************************
// Then we append the returned key to build the full URL. This URL is used
// in the View to build a link button.
//****************************
string login_url = @"http://192.168.1.1/tc/login.do?uid=" + key;
login_url = login_url.Replace("\"", string.Empty);
//****************************
// Pass the URL to the view to build the link button
//****************************
ViewBag.LoginURL = login_url;
}
我可以从发布MVC应用程序的服务器上的浏览器访问该URL,但是,该调用不成功。我有什么想法可以找出为什么这不会连接?
答案 0 :(得分:0)
如果您正在调用控制器内部的代码并且用户必须登录到您的Web应用程序,那么此代码应该为您提供所需的代码:
string currentUser = User.Identity.Name;
如果您的用户匿名使用您的网络应用,则currentUser将为空白。
答案 1 :(得分:0)
添加此代码解决了这个问题。
AbstractInterfaceTest
由于我们限制了IP地址的访问,因此安全风险非常低。