我想知道我是否可以使用 User.Identity.Name 从我的数据库中查询数据。
例如:
UsersBLL.GetPersonalInformation(string username)
将 User.Identity.Name 的值传递给此方法是个好主意吗?
User.Identity.Name 的值是否可以被劫持?
最佳答案
User.Identity.Name 与任何其他方式一样安全。有可能劫持它吗?也许,如果您没有使用 ssl 并且您没有加密您的身份验证机制,但如果您使用 SSL 并使用加密的 FormsAuthentication 或 Windows 身份验证,您应该没问题。
基本上,如果您遵循良好的安全实践,它应该是绝对安全的。至少不亚于任何其他识别用户的方式。
编辑:
这假设您不是在用户名上键入您的表,而是通过成员(member)用户 ID,并且您的代码只是按名称在成员(member)表中查找用户 ID。
如果您在用户名上键入表,则需要考虑许多安全问题。其中之一是亨克在他的回答中提到的。如果您不允许更改或重复使用用户名,那么这不是问题。
关于c# - "User.Identity.Name"安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154632/