如何在Glimpse MVC中将用户名称显示为用户

时间:2015-02-02 06:29:52

标签: glimpse

我正在使用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开启/关闭

  

enter image description here

我的问题是目前它显示我的浏览器名称为客户名称,如何在客户端显示用户名如User1,User2。

2 个答案:

答案 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?

现在,使用管理员用户名登录后,我的更新输出如下:

enter image description here