C# 在asp.net mvc中阻止访问公共url?

C# 在asp.net mvc中阻止访问公共url?,c#,asp.net-mvc-2,.net-3.5,C#,Asp.net Mvc 2,.net 3.5,我有一个asp.net mvc操作,必须公开。URL类似于: http://www.abc.com/controller/action?q=abcdef abcdef部分是我将提供给应该访问URL的用户的,但这不会阻止其他人使用相同的URL,因此是否有额外的安全层,我可以验证谁在使用URL?有没有最佳做法可以添加一些用户无法使用或确定的额外信息,除非明确告知这些信息会使公共URL更难使用?一个选项是生成一个一次性密钥,如GUID,该密钥仅在5分钟内有效。将这些存储在数据库中,当有人想要使用该密钥

我有一个asp.net mvc操作,必须公开。URL类似于:

http://www.abc.com/controller/action?q=abcdef


abcdef部分是我将提供给应该访问URL的用户的,但这不会阻止其他人使用相同的URL,因此是否有额外的安全层,我可以验证谁在使用URL?有没有最佳做法可以添加一些用户无法使用或确定的额外信息,除非明确告知这些信息会使公共URL更难使用?

一个选项是生成一个一次性密钥,如GUID,该密钥仅在5分钟内有效。将这些存储在数据库中,当有人想要使用该密钥访问URL时,请验证它是否在5分钟前访问过。您还可以验证IP地址和/或用户代理,但也不能保证GUID是正确的,但这是一个良好的开端。您可能还希望使用HTTPS来避免人们嗅探您的密钥

基本身份验证 摘要认证 表单身份验证 Windows身份验证 OpenID身份验证
将帮助你实现你想要的。它们是作为HTTP协议的一部分开发的,为您提供选择。不要把自行车当作自己的东西。这个问题太广泛了。基本auth可能是帮助您实现所需的最简单、最快速的方法。下次请设置标签,以了解您使用的技术和服务器。

我也在考虑IP筛选器属性。谢谢。我们能回答你的问题吗?