添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
儒雅的薯片  ·  VS2010与.NET4系列 ...·  1 周前    · 
傻傻的南瓜  ·  北京考试报·  1 月前    · 
玩手机的吐司  ·  Spring ...·  2 月前    · 
冷冷的投影仪  ·  代码异味(code ...·  6 月前    · 
逃跑的生菜  ·  SameSite cookie ...·  1 年前    · 
成熟的皮蛋  ·  What is ...·  1 年前    · 

在 2023 討論 ASP.NET WebForm,有點像大家都在聊海拉魯,你卻在研究瑪俐歐要怎麼救公主,邊緣感十足。但這個茶包讓我踩了好幾次雷,想想還是寫一篇紀念一下。

要在 ASP.NET 取得登入網站的使用者帳號,我們有不少舊程式是用 Request.LogonUserIdentity.Name 取值,運作多年相安無事,不覺得有什麼問題。但在測試台因特殊需求改用 Form 驗證(表單驗證)之後,問題一一浮現。

這裡借用 之前文章 的 Form 驗證程式小做修改,在頁面顯示 User.GetType().Name、Request.LogonUserIdentity.Name、User.Identity.Name 對照,進行實測驗證。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
    <form id="form1" runat="server">
        <h3>WebForm</h3>
            User.GetType().Name = <%= User.GetType().Name %> <br />
            Request.LogonUserIdentity.Name = <%= Request.LogonUserIdentity.Name %> <br />
            User.Identity.Name = <%= User.Identity.Name %>