小编Jos*_*ade的帖子

具有基本身份验证的Webclient/HttpWebRequest返回404找不到有效URL

编辑:我想回过头来注意问题根本不是我的问题,而是另一个公司的代码.

我正在尝试使用基本身份验证来启动页面.我一直收到404 Page not found错误.我可以将我的网址复制并粘贴到浏览器中并且工作正常(如果我没有登录到他们的网站,它会弹出一个凭据框,否则它会打开我想要打开的内容).我必须到正确的地方并进行身份验证,因为如果我一方面输入了错误的用户名/密码,我得到一个401(未经过身份验证的错误),如果我在查询字符串中传递了一个错误的参数,我会收到内部服务器错误500 .我尝试使用Webclient和HttpWebRequest都导致相同的404未找到错误.

使用Webclient:

string url = "MyValidURLwithQueryString";
WebClient client = new WebClient();
String userName = "myusername";
String passWord = "mypassword";
string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(userName + ":" + passWord));
client.Headers[HttpRequestHeader.Authorization] = "Basic " + credentials;
var result = client.DownloadString(url);
Response.Write(result);
Run Code Online (Sandbox Code Playgroud)

使用HttpWebRequest

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("MyValidURL");
string authInfo = "username:password";
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers.Add("Authorization", "Basic " + authInfo);
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Http.Get;
request.AllowAutoRedirect = true;
request.Proxy = null;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream …
Run Code Online (Sandbox Code Playgroud)

.net c#

54
推荐指数
3
解决办法
10万
查看次数

MVC3 - 为什么回发时导航属性为null

我发布后,我无法弄清楚如何让我的模型(EF4)的导航属性不为空.我在几个基本页面上遇到同样的问题.

即我有一个表使用LoginID的外键估计(来自Login表).

在我的HTTPGet Edit方法中,我找到了我想要的具体估计值:

Estimate estimate = db.Estimates.Find(id)
Run Code Online (Sandbox Code Playgroud)

从这里我可以从Login表访问Login导航属性和该记录的任何属性.

我将此估计值作为我的强类型视图的模型.当我调用HTTPPost Edit方法(并将模型作为参数传递给它)时,我的Login导航属性为null,我无法访问其中的任何内容.我当然可以解决这个问题,因为我的估计课程中确实有LoginID字段,但感觉非常笨重,而且我错过了实体框架的一个关键优势.

我在多个页面上遇到同样的问题,我将带有导航属性的模型传递给我的视图,视图返回带有null导航属性的模型.

下面是我遇到问题的代码示例:

    [HttpPost]
    public ActionResult Edit(Estimate estimate)
    {

        var test = estimate.Login.CompanyProfileID;
        ...
Run Code Online (Sandbox Code Playgroud)

我可以在视图中访问Model.Login及其所有属性,所以我知道它正确地传递给了视图.当我的表单提交时,它只是没有将导航属性传递回控制器.

entity-framework asp.net-mvc-3

5
推荐指数
1
解决办法
3627
查看次数

未找到Web API路由404

尝试访问我的一个Web API操作时,我收到404未找到错误:

我有我的WebAPIConfig:

config.Routes.MapHttpRoute(
      name: "DefaultApi",
      routeTemplate: "api/{controller}/{action}/{id}",
      defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

我有一个名为OnSourceAPIController的控制器和一个GET操作ValidateServiceRequestAuto.

我尝试去的时候收到404错误:

http://localhost/api/OnSourceAPI/ValidateServiceRequestAuto
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是我遇到了某种路由错误,但我为它创建了一个mvc控制器和一个索引页,并且能够通过这种路由(api/controller/action)正常浏览.内置的api/help页面甚至将/ api/OnSourceAPI/ValidateServiceRequestAuto显示为我的api调用的路由.

我也尝试过使用WebAPIRouteDebugger工具.当我使用它时,它给我一个000 404找不到的错误

http://localhost/api/OnSourceAPI/ValidateServiceRequestAuto
Run Code Online (Sandbox Code Playgroud)

,但实际上给我正常的路线信息,如果我把localhost从前面拿走并且只是使用

api/OnSourceAPI/ValidateServiceRequestAuto as the URL...
Run Code Online (Sandbox Code Playgroud)

任何指针将不胜感激.

asp.net-mvc-routing asp.net-web-api

4
推荐指数
1
解决办法
1万
查看次数