我正在使用我在.net应用程序中显示的标题变量来验证我的用户,我的问题是如何验证当前页面上的用户是否可以继续访问任何其他页面。
我想从一个或多个数组中检查名称,如果它们没有收听,那么它会将它们重定向到错误页面,让他们知道他们没有访问权。
我打算采用sql身份验证的路径,但这只需要一个额外的登录页面,因为我已经检查了标题变量,我认为我可以这样做。对此有任何帮助都很棒!
答案 0 :(得分:0)
您永远不应该信任从客户端发送到您服务器的任何数据。可以轻松修改标头变量以表示任何内容。人们很容易伪造标题来欺骗自己成为别人(比如管理员在最坏的情况下)。
你应该考虑某种需要用户名+密码组合的身份验证,我担心。
如果你真的想要依赖标题,可以添加一个标识自己的标题,比如X-USERNAME:CSharpDev4Evr
,然后只解析那一个并匹配后端的数组。
我不知道任何C#.NET,但这里有一个JavaScript代码片段,显示原理:
var headerUsername = "CSharpDev4Evr";
var validUsernames = ["Eric", "CSharpDev4Evr", "Stackoverflow", "root"];
// Check if we are in the array
// Re-direct if we're not
if (validUsernames.indexOf(headerUsername) === -1)
window.location = 'error.html';
// Proceed with other authenticated stuff here
// ...