ASP.NET获取当前用户名
我正在尝试使用ASP.NET和VB.NET在我们公司的Intranet上构建一个应用程序.
一旦我的应用程序发布到IIS,这些函数都不会返回任何内容.它们在开发中工作正常(即:按F5我得到我的常规网络用户名),但是一旦发布它们就会返回”(空字符串). HttpContext.Current.User.Identity.Name Page.User.Identity.Name 我正在寻找能够获取当前用户登录名的东西 – 任何东西.请注意,由于其他功能要求,我无法在web.config中更改这些设置. <authentication mode="Windows"/> <roleManager enabled="true" cacheRolesInCookie="true" defaultProvider="AspNetWindowsTokenRoleProvider" cookieName=".ASPXROLES" cookiePath="/" cookieTimeout="480" cookieRequireSSL="false" cookieSlidingExpiration="true" createPersistentCookie="false" cookieProtection="All" /> 我也无法更改任何IIS设置,包括“启用匿名用户”设置.规格是一成不变的,我必须砍掉我自己的腿(或头部)来改变它们. 我认为必须有一种方法来获取当前使用我当前配置登录的用户名. 有任何想法吗? 谢谢, 贾森 解决方法
在IIS中禁用匿名身份验证.
如果在IIS中启用了匿名身份验证,则User.Identity.Name可能为空. 在web.config中设置 <configuration> <system.web> <authentication mode="Windows" /> <authorization> <deny users="?"/> </authorization> </system.web> </configuration> 使用User.Identity.Name获取登录用户. Environment.UserName是正在运行的线程标识.如果您已经启用了Mark所说的Impersonation,那么您可以发现返回的结果会有所不同.但是,这需要ASP.NET Impersionation.如果您不需要ASP.NET Impersonation并处理线程标识,则可以忽略Environment.UserName,如果只使用User.Identity.Name. 在执行任何动作之前也是check. if (User.Identity.IsAuthenticated) { Page.Title = "Home page for " + User.Identity.Name; } else { Page.Title = "Home page for guest user."; } 这是good example (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – __doPostBack无法在回发时呈现
- ASP.NET Webforms – “从客户端检测到一个潜在危
- asp.net – 通配符HttpHandler不处理静态文件
- 解决MSF更新证书错误
- asp.net – 在localhost中将IIS设置为Web开发服务
- asp.net-mvc-4 – MVC4如何挂钩OnSessionStart事
- asp.net-web-api – 使用asp.net web api作为订阅
- asp.net-mvc – Signalr从集线器外部调用特定客户
- asp.net-mvc – 如何在远程验证中使用多个Additi
- 本地iis上的asp.net核心Windows身份验证