在asp.net mvc urls中使用主键

时间:2010-01-18 16:18:48

标签: asp.net-mvc url primary-key

我一直听说我不应该在我的asp.net mvc url中使用主键

例如:/ Users / Edit / 1243

这里有什么问题?

什么是替代方案,输入用户名?因为你希望它是独一无二的,看起来主键是最干净的选择

想法?

5 个答案:

答案 0 :(得分:6)

我没有看到将主键放在URL上的任何问题(Stack Overflow的创建者和无数其他站点也是如此)。通常做的一件事是提供主键并提供SEO和用户友好的"slug",这是标识符链接到的数据的人类可读标题。

如果您打算识别资源(在您的情况下是用户帐户),则必须在URL上提供唯一标识符。即使您决定不使用主键,您仍必须选择无法更改的标识符。

答案 1 :(得分:3)

在URL中放置(数字)主键的问题之一是某人(或某些搜索引擎)可以开始用其他数字替换该数字,以查看您在数据库中获得的内容。这通常不是问题,但如果......

  • 您的用户只能编辑或查看自己的数据
  • 您的数据库中包含的内容是“隐藏”而未链接到您的网站
  • 等...

...你必须确保你在Action方法中检查权限,以确保没有人看到他们不应该看到的数据。只要您对每个请求进行适当的权限检查 - 主键不应该造成问题。

答案 2 :(得分:0)

可能有两个原因   - 安全保障   - SEO优化

将用户名放在一起似乎是个不错的选择

答案 3 :(得分:0)

我认为你应该保留这个主键 - 否则你将如何识别你的实体。

两点:

  • 搜索引擎优化 - 对Google和Google更好Co阅读文字。为什么不在网址中添加ID +名称
  • 安全性:但如果当前用户具有对所请求实体的访问权限,则必须检查BL。

答案 4 :(得分:0)

使用主键没有任何实际问题,特别是如果它是int(guids用于丑陋的URL)。

编辑是一个不好的例子,如果你有像

那样的话
www.example.org/users/1234

这并没有真正告诉你太多。如果它是个人资料页面,则非常违反直觉。

正确职位的正确网址。