Asp.net mvc 4 Web Api身份验证控制器-绑定要创建的密码和数据

Asp.net mvc 4 Web Api身份验证控制器-绑定要创建的密码和数据,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,我正在为我的web api创建一个身份验证控制器。本质上,当我的应用程序的用户创建帐户时,我的控制器需要接收用户的数据和密码(它不是包含用户其余数据的类型的一部分) 只有这一次密码被未加密地发送到web api。该控制器向用户返回一个散列盐,用户从此将其用于身份验证请求。但我的问题是,我无法将密码与创建的用户对象绑定到主体,因为WebAPI只接受一个主体参数,而用户信息就在其中。所以这就给我留下了密码的URI。这比在体内传递安全吗?有没有更好的方法来编写此请求 谢谢 我不确定我是否正确理解了您的

我正在为我的web api创建一个身份验证控制器。本质上,当我的应用程序的用户创建帐户时,我的控制器需要接收用户的数据和密码(它不是包含用户其余数据的类型的一部分)

只有这一次密码被未加密地发送到web api。该控制器向用户返回一个散列盐,用户从此将其用于身份验证请求。但我的问题是,我无法将密码与创建的用户对象绑定到主体,因为WebAPI只接受一个主体参数,而用户信息就在其中。所以这就给我留下了密码的URI。这比在体内传递安全吗?有没有更好的方法来编写此请求


谢谢

我不确定我是否正确理解了您的机制。首先,如果您发送未加密的密码(例如,当用户注册时),请确保使用SSL。发送salt也是如此(以防止对用户密码的字典攻击)

如果您不想将密码作为操作参数的一部分发送,则可以始终使用http标头并使用HttpRequestMessage.headers属性检索密码字符串

不知道web api只接受一个主体参数是什么意思,但请记住,您发送给web api操作的对象可能很复杂,即可以由用户对象和密码字符串组成

所以。。。这就给我留下了密码的URI

哦,没必要。您可以使用自定义HTTP头。Cookie是此类请求头的一个示例,可用于发送身份验证令牌。或授权标头。甚至是自定义标题

例如,我展示了如何使用Web API进行基本身份验证,并查询成员资格和角色提供程序