相关疑难解决方法(0)

使用成员资格提供程序的ASP.NET MVC 4 Web API身份验证

我有一个使用Web API的ASP.NET MVC 4项目.在控制器上,我已使用[Authorize]属性将类设置为需要授权.对于身份验证我使用ASP.NET成员资格提供程序并将我的Web.Config设置为使用"表单"身份验证.这是我被困的地方:

一切都工作得很好,直到我完成测试API的步骤,我想用[Authorize]属性保护控制器,这样我就可以开始对我的Membership Provider中的用户进行身份验证.所以我启动Fiddler并进行相同的调用,添加Authorization:Basic属性以及来自我的会员提供者的用户名:密码,如下所示:

在此输入图像描述

我得到的响应是未经授权的401,在"Auth"下,我得到"没有WWW-Authenticate Header".然后我意识到API正在寻找SHA1编码密钥.所以我从搜索中启动一个SHA1生成器并获取我的用户名的密码:password并更新我的Request Header,如下所示:

在此输入图像描述

这也不起作用,我得到相同的结果.此外,我显然需要某种"共享密​​钥"与服务器一起使用来解码我的用户名/密码.

所以我的问题:

  1. 如何从服务器获取此密钥(或者在这种情况下,虚拟IIS运行VS 2012).
  2. 如何使用它来使用ASP.NET成员资格提供程序中的用户名/密码在Fiddler中进行Authenticated调用.
  3. 如何在我的客户端应用程序中使用它来进行相同的调用(C#WPF应用程序).
  4. 在我的HTTP调用中与SSL结合使用时,这是最好的吗?如果不是什么?

提前致谢!

asp.net-mvc forms-authentication asp.net-membership fiddler asp.net-web-api

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

FromBody字符串参数给出null

这可能是非常基本的东西,但我无法弄清楚我哪里出错了.

我试图从POST的主体中获取一个字符串,但"jsonString"只显示为null.我也想避免使用模型,但也许这是不可能的.我用PostMan打的那段代码是这个块:

[Route("Edit/Test")]
[HttpPost]
public void Test(int id, [FromBody] string jsonString)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

也许这是我对邮递员做错的事情,但我一直试图在身体的价值部分使用"= test"(如在关于这个主题的其他问题中看到的那样) - x-www-form-urlencoded section with密钥作为jsonString而没有.我也尝试过使用raw-text和raw-text/plain.我得到了身份证,所以我知道网址是正确的.任何有关这方面的帮助将不胜感激.

PostMan目前设置如下:

POST http://localhost:8000/Edit/Test?id=111
key = id  value = 111
Body - x-www-form-urlencoded
key = jsonString  value = "=test"
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api asp.net-web-api-routing asp.net-web-api2 postman

30
推荐指数
9
解决办法
8万
查看次数

同时阅读FromUri和FromBody

我在web api中有一个新方法

[HttpPost]
public ApiResponse PushMessage( [FromUri] string x, [FromUri] string y, [FromBody] Request Request)
Run Code Online (Sandbox Code Playgroud)

请求类就像

public class Request
{
    public string Message { get; set; }
    public bool TestingMode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用PostBody对localhost/Pusher/PushMessage进行查询?x = foo&y = bar:

{ Message: "foobar" , TestingMode:true }
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

c# asp.net http-post asp.net-web-api frombodyattribute

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

找不到Angular2 POST Web api 404

我正在构建一个Angular2服务来记录存储在ILog对象中的某些事件,并将它们发送到API以存储在数据库中.

我的日志服务非常简单:

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { EnvironmentModule } from "../environment";
import { ILog } from "./log";


@Injectable()
export class LogService {

   constructor(private _http: Http, private environment: EnvironmentModule) { }

   postLog(log: ILog): void {
       this.json = this.convertToJSON(log);
       this._http.post(this.environment.getWebApiUri() + 'api/Log/PostLog/', log, {})
           .subscribe(
           () => console.log('Success')
       ); //goes to localhost:3304/WebAPI/Log/PostLog/, returns 404 not found
   }

}
Run Code Online (Sandbox Code Playgroud)

它调用一个WebAPI控制器,将数据传递给要处理的服务:

[RoutePrefix("api/Log")]
public class LogController : ApiController
{
    private ILogService _LogService;

    public LogController() : this(new …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-web-api angular

0
推荐指数
1
解决办法
1995
查看次数