将唯一字符串转换为唯一整数

发布于 2024-12-08 09:16:00 字数 262 浏览 0 评论 0原文

我想更改我们的 c# asp.net mvc 应用程序以使用 Windows 身份验证以及表单身份验证(如当前实现的那样)。

目前,我们有许多表引用表单身份验证使用的用户表中的用户 ID 整数。

是否有适当的方法将 Windows 身份验证返回的唯一字符串用户名转换为可用作其他表的 id 的唯一整数?

一个例子可能是在用户名上使用 .GetHashCode() ,但是我不确定这是否一定会创建一个适当的整数(即唯一的,给定相同的用户名总是返回相同的整数,等等)

I'm wanting to change our c# asp.net mvc application to work with windows authentication as well as forms authentication (as is currently implemented).

Currently we have a number of tables referencing a user id integer in the user table used by the forms authentication.

Is there an appropriate way of converting the unique string username returned by windows authentication to a unique integer that can be used as the id for the other tables?

An example might be using .GetHashCode() on the username, however I'm not sure if that will definitely create an appropriate integer (ie. unique, always the same integer returned given the same username, etc.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

[浮城] 2024-12-15 09:16:00

GetHashCode() 在框架版本、操作系统平台等之间发生变化,因此您不能依赖它作为 DB PK。

如果您使用 Windows 身份验证,那么维护身份对于调试、故障排除和可能的模拟很有用。为什么不将其存储在带有 Windows 用户名的表中 -> UserID 映射以便您可以根据给定的用户名查找用户 ID?

GetHashCode() changes between framework versions, OS platform, etc., so you cannot rely on it for use as a DB PK.

If you are working with Windows authentication then maintaining the identify is useful for debugging, troubleshooting and possibly impersonation. Why not store it in a table with a Windows Username -> UserID mappings so that you can lookup a User ID given a user name?

盛装女皇 2024-12-15 09:16:00

不要使用GetHashCode()

相反,您应该创建一个将 Windows 用户帐户映射到完整用户 ID 的数据库表(Users 表)。
您还可以在此表中存储有关每个用户的附加信息。

Do not use GetHashCode()!

Instead, you should create a database table mapping Windows user accounts to integral user IDs (a Users table).
You can also store additional information about each user in this table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文