ASP.NET C#中怎么让 httpcontext.current.user.identity.name 获取为自定义的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET C#中怎么让 httpcontext.current.user.identity.name 获取为自定义的值相关的知识,希望对你有一定的参考价值。

也可以这么描述。用户登录了网站,然后我们写代码的时候,在网页的其他页面 使用 httpcontext.current.user.identity.name 的时候是用户的名字。求大神解决!
登录成功后,在任何页面的 httpcontext.current.user.identity.name 都是该用户的名字。求代码。求解释。

我目前可以替换掉单个页面的 httpcontext.current.user 对象 但不能替换整个用户登录页面。
我想问的是怎么在整个用户访问期间,httpcontext.current.user 对象 都是我自定义的对象。

鉴于你已经可以替换单页面的HttpContext.Current.User对象。


那么下面你需要做的事

    添加一个Global.asax

    //注册获取用户信息的事件,并且在其中写上你修改单个页面的代码
    protected void Application_AuthenticateRequest(object sender, EventArgs e)

        //你修改单个页面的代码,写在这里。这样整个管道中的HttpContext.Current.User都将改变。

参考技术A 不可能的 这个属性就是用户的姓名 不可能为对象 除非不用ASP.NET提供的这个 自己写那就可以自定义追问

我并没有说过是对象啊。我说的因为我们公司的就实现了这个,所以我才问,我有源代码,但是太多没找到是哪里做了这个操作

追答

我想问的是怎么在整个用户访问期间,httpcontext.current.user 对象 都是我自定义的对象

咯 这是你的原话 你就是想要整个用户对象 但是这个不可以的

追问

这个是可以的,因为 我已经实现了,是在微软的.NET DEVELOP 官方网站上看见的资料。我已经做出来了 你不用怀疑。

参考技术B 你要获取,你就必须先存进去, 什么时候存进去? 当时是在登陆 验证成功后, 把用户信息存进去。怎么放进去 得看你代码了追问

请问怎么放进去啊,我要用户登录后的每个访问页面的 httpcontext.current.user.identity.name 值都是这个用户。

追答

得看你代码

参考技术C HttpContext.Current.User是IPrincipal接口类型,如果想实现你说的这种,需要自己实现这个
IPrincipal就可以的。

以上是关于ASP.NET C#中怎么让 httpcontext.current.user.identity.name 获取为自定义的值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET 中获取根域 URI?

ASP.NET Core 2.0 身份验证中间件

C# ASP.NET怎么手动给GridView赋值,不从数据库中读取?

C# ASP.NET中的Label怎么实现绝对定位?

C# asp.net 删除三天前的所有数据 SQL语句怎么写

asp.net怎么限制文本框输入的类型c#