我正在使用Glimpse来跟踪网页请求。我在测试服务器上的Web.config中进行了以下设置。
Web.Config
<runtimePolicies> <ignoredTypes> <add type="Glimpse.AspNet.Policy.LocalPolicy, Glimpse.AspNet" /> <add type="Glimpse.Core.Policy.ControlCookiePolicy, Glimpse.Core"/> </ignoredTypes> </runtimePolicies>
所以我可以在所有客户端计算机上运行Glimpse而无需从Glimpse.axd开启/关闭
我的问题是目前它显示我的浏览器名称为客户名称,如何在客户端显示用户名如User1,User2。
答案 0 :(得分:2)
Glimpse.axd不仅允许您启用/禁用Glimpse(在您的设置中不再需要),但它还允许您设置客户端名称。 This SO Question为您提供有关如何以及原因的详细信息。
如果你没有明确地自己设置,那么Glimpse会在某些时候为你做这件事。基本上,如果Glimpse找不到名为 glimpseId 的cookie作为请求的一部分,并且允许将cookie设置为响应的一部分(由IRuntimePolicy
实现确定),那么它将使用登录用户的名称创建该cookie,或者,当没有此类用户时,它将根据随请求发送的浏览器详细信息创建一个名称,这就是你的意思看到。
现在有趣的是,这正是你想要的,但会话仍然根据所使用的浏览器命名。这样做的原因是Glimpse在您的情况下是开箱即用的,因为ControlCookiePolicy
已被禁用,并且您对应用程序发出的第一个请求,即让登录,已经是创建该cookie,因为它无法找到 glimpseId cookie,其值将基于随请求一起发送的浏览器详细信息而不是登录用户,因为还没有。
因此,如果您使用浏览器的开发人员工具删除该cookie,并以登录用户身份发出新请求,那么您将看到您的名称作为会话名称(请注意后续请求,因为处理该请求会将cookie设置为响应的一部分)
您也可以在登录过程中明确地编写该cookie,以确保将其明确设置为用户名,即使cookie已作为请求的一部分存在。
一个缺点是,cookie没有链接到任何用户会话,这意味着如果用户注销或会话过期,那么Glimpse cookie仍然存在,并且每个后续请求都将被标记为好像登录用户创建它,可能不再是这种情况了。
答案 1 :(得分:0)
我可以将客户端名称设置Cookie glimpseId设置如下。
$("#UserName").change(function () { var userName = $('#UserName').val(); document.cookie='glimpseId='+ userName +';path=/ ;expires=Sat, 01 Jan 2050 12:00:00 GMT;'; });
我从以下链接获得帮助。
What does "Set Glimpse Session Name" do?
现在,使用管理员用户名登录后,我的更新输出如下: