更改特定用户的登录路径,ASP.Net,webforms
change loginpath for specific user, ASP.Net, webforms
我最近开始在另一个开发人员(他不在公司,所以不能问他)建立的网站上工作
网站上有几种不同的用户帐户类型,因此当用户登录时,用户会进入两个指定的登录起始页面之一。
有些用户有两种帐户类型。在这种情况下,我想制作一个包含两个起始页选项的下拉列表(我们称它们为 a 和 b)
如果他们从 ddl 选择选项 a),则 a-startpage 将是该用户的永久起始页,直到用户将其更改为 b,然后 b 将是该特定用户的永久起始页。
该项目是使用 C#、ASP.NET、Webforms、MS SQL 创建的。
非常感谢任何可能引导我走向正确方向的建议
/S
至少有 2 个可能的解决方案几乎不需要付出任何努力:
- 用户系统上的cookie:访问系统时
第一次(或在系统更改或浏览器的 cookie 清除之后)
应用程序将用户带到下拉页面并让用户选择
首选登录起始页。在随后的访问中,从 cookie 中读取选择,然后将用户转发到预期的页面。
恕我直言,最大的优势是不需要更改后端结构,而且前端的更改很小。
注意:不要相信你得到的东西
读取 cookie 并始终仔细检查页面是否建议
实际上允许用户使用 cookie。
- 用户的属性:用户的选择保存在用户的配置文件中,并在后续访问时读取。
这种方法需要在后端进行一些更改,因为必须将新属性添加到用户实体也许还必须创建与该新属性交互所需的工具(存储过程、方法等)。
此解决方案需要更少或不需要 checks/validation,因为信息存储在服务器端,因此您可以重定向 'blindly' 到登录起始页。
没有 'right' 解决方案,因为它主要取决于您被允许做什么和您的技能。
您是否愿意更改后端的结构?
什么你知道后端开发还是前端开发?
你更容易改变哪个?
在开发支持这些方法之一的过程中是否有任何 policy/guideline 可以遵循?
所以最后我就这样解决了
首先,我在数据库 (member/user)table 中创建了一个名为 "changesite" 的整数(允许为空)列,因此我可以使用成员 ID。
然后我将它连接到下拉列表,members/users 可以在其中选择他们的起始页(在我的例子中,我让 ddl 只对拥有两个用户帐户的用户类型的成员可见) .
如果用户选择第一个选项 a 1 保存在数据库中,第二个选项 a 2。(此方法可用于您可能拥有的任意数量的起始页)。
然后在 .cs 文件中,用户被重定向到他们指定的起始页,就像创建一个 if, else 语句一样简单,使用来自 changesite 的值作为标识符。
基本上,如果来自列 changesite 的值 == null,什么也不做。如果 changesite == 1 重定向到第一个起始页,否则重定向到第二个起始页。
非常感谢 Paolo 的投入。
我最近开始在另一个开发人员(他不在公司,所以不能问他)建立的网站上工作
网站上有几种不同的用户帐户类型,因此当用户登录时,用户会进入两个指定的登录起始页面之一。
有些用户有两种帐户类型。在这种情况下,我想制作一个包含两个起始页选项的下拉列表(我们称它们为 a 和 b)
如果他们从 ddl 选择选项 a),则 a-startpage 将是该用户的永久起始页,直到用户将其更改为 b,然后 b 将是该特定用户的永久起始页。
该项目是使用 C#、ASP.NET、Webforms、MS SQL 创建的。
非常感谢任何可能引导我走向正确方向的建议
/S
至少有 2 个可能的解决方案几乎不需要付出任何努力:
- 用户系统上的cookie:访问系统时
第一次(或在系统更改或浏览器的 cookie 清除之后)
应用程序将用户带到下拉页面并让用户选择
首选登录起始页。在随后的访问中,从 cookie 中读取选择,然后将用户转发到预期的页面。
恕我直言,最大的优势是不需要更改后端结构,而且前端的更改很小。
注意:不要相信你得到的东西 读取 cookie 并始终仔细检查页面是否建议 实际上允许用户使用 cookie。 - 用户的属性:用户的选择保存在用户的配置文件中,并在后续访问时读取。
这种方法需要在后端进行一些更改,因为必须将新属性添加到用户实体也许还必须创建与该新属性交互所需的工具(存储过程、方法等)。
此解决方案需要更少或不需要 checks/validation,因为信息存储在服务器端,因此您可以重定向 'blindly' 到登录起始页。
没有 'right' 解决方案,因为它主要取决于您被允许做什么和您的技能。
您是否愿意更改后端的结构?
什么你知道后端开发还是前端开发?
你更容易改变哪个?
在开发支持这些方法之一的过程中是否有任何 policy/guideline 可以遵循?
所以最后我就这样解决了
首先,我在数据库 (member/user)table 中创建了一个名为 "changesite" 的整数(允许为空)列,因此我可以使用成员 ID。
然后我将它连接到下拉列表,members/users 可以在其中选择他们的起始页(在我的例子中,我让 ddl 只对拥有两个用户帐户的用户类型的成员可见) .
如果用户选择第一个选项 a 1 保存在数据库中,第二个选项 a 2。(此方法可用于您可能拥有的任意数量的起始页)。
然后在 .cs 文件中,用户被重定向到他们指定的起始页,就像创建一个 if, else 语句一样简单,使用来自 changesite 的值作为标识符。
基本上,如果来自列 changesite 的值 == null,什么也不做。如果 changesite == 1 重定向到第一个起始页,否则重定向到第二个起始页。
非常感谢 Paolo 的投入。