c# - "User.Identity.Name"安全吗?

标签 c# asp.net security forms-authentication

我想知道我是否可以使用 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/

相关文章:

c# - 如何在 C# 中使用 Open XML SDK 将 doc 转换为 docx

c# - 是否可以强制仅从已知客户端调用 Web 服务?

Javascript修改安全性?

java - 如何通过反射访问私有(private)方法和私有(private)数据成员?

html - HTML5 本地存储对信用卡信息的安全影响是什么

c# - put 方法的参数值为 null

c# - 在 div 中设置默认按钮 - 但我不知道 ID/类

c# - 试图将选定的 DropDownList 传递给 session

c# - 在 asp.net 网站中集成清晰的故事情节

c# - 为什么我的 ASP.NET 应用程序需要管理员权限才能从注册表中读取数据?