关于java获取登录用户id的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java获取登录用户id的问题相关的知识,希望对你有一定的参考价值。

在网上搜了很多, 都没有找到
需要获取的ip是192.168.*.*这种格式而不是127.0.0.1这种

看起来你已经获取到127.0.0.1这个IP了吧?
那你的代码就没错了。

只不过你用localhst:8080这么登录,IP就是127.0.0.1
你非得想要看到192.168.*.*的话,
看看你本机的IP是多少,开始->运行->cmd->ipconfig 就能查看到你本机的IP了
比如说你本机的IP是192.168.1.21的话

你在浏览器里面访问192.168.1.21:8080
打开的还是你做的那个页面
但是显示的IP就变成你想要的远程IP了。
参考技术A /**
* FunName: getIpAddr(HttpServletRequest request)通过客户端request获取用户IP
* @param: request -
* @return String: 返回用户Ip
* @Author:
* @Create Date: 2010-6-12 下午9:38:12
*/
public static String getIpAddr(HttpServletRequest request)
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
ip = request.getHeader("Proxy-Client-IP");

if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
ip = request.getHeader("WL-Proxy-Client-IP");

if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
ip = request.getRemoteAddr();

return ip;


注:访问时最好不要用本机,使用其他机器尝试
PS:有问题可百度Hi,good luck!~~~
参考技术B request.getRemoteAddr()
request.getRemoteHost()
request.getRemotePort()
request.getRemoteUser()

如何获取已登录用户的用户 ID?

【中文标题】如何获取已登录用户的用户 ID?【英文标题】:How to get the userID of a logged in user? 【发布时间】:2012-10-10 08:44:05 【问题描述】:

我正在尝试获取当前登录用户的用户 ID。这是我的代码:

public int GetUserID(string _UserName)
    
        using (var context = new TourBlogEntities1())
        
            var UserID = from s in context.UserInfoes
                         where s.UserName == _UserName
                         select s.UserID;
            return  Int32.Parse(UserID.ToString()); //error is showing here

        
    

我正在使用我的控制器调用该方法:

public ActionResult NewPost(NewPost model)
   
       var Business = new Business();
       var entity = new Post();
       entity.PostTitle = model.PostTitle;
       entity.PostStory = model.PostStory;
       entity.UserID = Business.GetUserID(User.Identity.Name);



       Business.NewPost(entity);
       Business.ViewPost(entity);
       return View("ViewPost", model);

   

错误显示为“输入字符串格式不正确”。请帮忙。谢谢。

【问题讨论】:

【参考方案1】:

您的查询返回一个 IEnumerable。您只需要获取一条记录:

using (var context = new TourBlogEntities1())

    var userIds = from s in context.UserInfoes
                 where s.UserName == _UserName
                 select s.UserID;
    return userIds.Single();

顺便说一句,如果有超过 1 条记录符合条件,.Single() 方法将抛出异常。希望您对数据库中的用户名字段有一个唯一的约束。

【讨论】:

谢谢哥们...也许是时候回归基础了! 是的,是时候了解基础知识了。在这种情况下,LINQ 是基础。在进入 ASP.NET MVC 之前,您可能应该先学习它。 我学到了一点,但现在我一定会再看一遍。谢谢。【参考方案2】:
 CreatedBy = this.HttpContext.User.Identity.Name,

【讨论】:

以上是关于关于java获取登录用户id的问题的主要内容,如果未能解决你的问题,请参考以下文章

java单点登录

Java系统漏洞:关于用户登录后操作的注意事项

关于扫码登录

java 如何获取当前AD域用户名?

rtx使用java二次开发时如何获取用户登录名和登录的部门ID

关于ldap java验证的问题