rest – ASP.NET Web API身份验证选项
有哪些选项可用于对来自其他域的
JQuery应用程序使用的MVC3 Web API应用程序进行身份验证?
以下是我迄今为止尝试的限制/事项: – >我不想使用OAuth;对于用户群有限的私有应用程序我不能指望最终用户在现有提供商上拥有他们的帐户,并且没有可以实现我自己的帐户 此时我已经退出HMAC-SHA256方法,该方法使用URL或查询字符串/ post来提供哈希和其他变量. 将这些变量放在URL中似乎很脏,将它们放在查询字符串/帖子中是一件痛苦的事. 我成功地使用JQuery $.ajaxSetup beforeSend选项生成哈希并将其附加到标题,但正如我所提到的,你不能使用IE8 / 9的标题. 现在我不得不求助于$.ajaxPrefilter因为我无法在beforeSend中更改ajax数据,并且不能只在$.ajaxSetup中扩展数据,因为我需要根据ajax的类型动态计算哈希值查询. 我必须遗漏一些东西,因为我找不到一个解决方案: – 必须有人在那里正确地做这件事…… 编辑 为了澄清,API方面的身份验证机制很好……无论我验证请求的哪种方式,我生成一个GenericPrincipal并在API中使用它(这个的优点是另一个帖子,但它确实允许我使用MVC中的标准授权机制,我更倾向于自己编写…而不是我的API上的其他开发人员学习和维护) 问题主要在于从客户端向API传输身份验证信息: – 尽管很糟糕,查询字符串/ formdata似乎是最好的选择;但是现在我必须弄清楚如何在每个请求上捕获这些.我可以使用MessageHandler或Filter,但都不提供访问formdata的方便方法. 我知道我可以自己编写所有的解析和处理内容(看起来我会这样)但重点是我无法相信已经没有解决方案了.这就像我有(1)支持IE,(2)安全和(3)干净的代码,我只能选择两个. 解决方法
你的要求对我来说似乎有点不合理.你不可能同时拥有所有东西,你必须愿意放弃一些东西.几句话:
> OAuth似乎就是你想要的,至少有一些修改.您可以使用Azure的访问控制服务,这样您就不必实现自己的令牌提供程序.这样,您就“外包”了安全令牌提供程序的实现.最后我检查了Azure ACS仍然是免费的.当您查找ACS文档时会有很多混乱,因为人们大多使用它来插入Facebook或Google等其他提供商,但您可以将其调整为您自己服务的令牌提供商.>你似乎很担心重播攻击.重播攻击几乎总是有可能的.我必须只听通过数据的数据并将其发送到您的服务器,甚至通过SSL.重播攻击是你需要处理的事情.通常我所做的是跟踪即将到来的请求的缓存并将哈希签名添加到我的缓存中.如果我在5分钟内看到另一个具有相同哈希的请求,我会忽略它.为此,我将请求的时间戳(毫秒粒度)和URL的一些衍生物添加为我的哈希参数.这允许每毫秒一次操作来自同一客户端的相同地址,而不将请求标记为重放攻击.>你提到jQuery如果使用散列方法会让我感到困惑.这意味着你实际上在客户端上有你的哈希算法和你的签名逻辑.这是一个严重的缺陷,因为通过检查javascript,我现在可以确切地知道如何签署请求并将其发送到您的服务器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何只允许mvc4 razor中的文本框中的数字
- asp.net – 有一个很好的web.config编辑器吗?
- asp.net – 如何管理具有非固定列号的转发器
- 部署DotNetNuke并将ASP.NET应用程序分开 – 可能的问题?
- asp.net-mvc-3 – 在C#中将MetadataType添加到派生类
- asp.net-mvc – @Model和@model之间的区别
- asp.net-mvc – 如何在视图上下文之外获取ModelMetadata?
- asp.net-mvc-4 – 在Azure中部署时,在EF迁移中使用Update-D
- 我不能在ASP.NET MVC中做的事情
- asp.net-mvc – 服务层或存储库中的密码哈希等?
- asp.net-mvc-3 – 如何不使用Ninject的内核作为资
- asp.net-mvc – 我的字体没有在print preview st
- asp.net mvc 之旅—— 第二站 窥探Controller下的
- asp.net编程实现删除文件夹及文件夹下文件的方法
- 是否可以使Page.IsPostBack独立于ASP.net而变为真
- ASP.NET Webforms验证框架的建议
- asp.net – ACL究竟是什么意思? (共享点)
- asp.net-mvc-3 – CSS3 @ font-face休息Razor解析
- ASP.NET线程敏捷 – 如何克服?
- asp.net – Context.ession对象在Application_Ac