.net 4.5 web 表单 c# 在代码文件中找不到变量的上下文

.net 4.5 web forms c# Context of a variable isn't found in Codefile

我正在尝试构建 SAML 2.0 声明感知 Web 表单并获得 some code from MSDN

我明白是什么问题了,就是不知道怎么解决:

cs 代码隐藏页面中的 signedIn 变量(和其他..)不知道它已定义并关联到 aspx 页面中的 asp 变量。 {名称 'signedIn' 在当前上下文中不存在}

我已经尝试调整继承值,Class 名称,我已经搜索了互联网和这个网站来寻找想法。 (这让我采取了构建 designer.cs 文件的步骤)仍然没有结果..(即使最后我会尝试将此解决方案转换为单文件页面模型,因为它会更容易供我实施。)

帮忙?

Default.aspx.cs:

using System;
using System.IdentityModel;
using System.Security.Claims;
using System.Threading;
using System.Web.UI;

namespace TestApp
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            ClaimsPrincipal claimsPrincipal = Thread.CurrentPrincipal as ClaimsPrincipal;

            if (claimsPrincipal != null)
            {
                signedIn.Text = "You are signed in.";

                foreach (Claim claim in claimsPrincipal.Claims)
                {
                    //claimType.Text = claim.Type;
                    //claimValue.Text = claim.Value;
                    //claimValueType.Text = claim.ValueType;
                    //claimSubjectName.Text = claim.Subject.Name;
                    //claimIssuer.Text = claim.Issuer; 
                }
            }
            else
            {
  //              signedIn.Text = "You are not signed in.";
            }
        }
    }
}

Default.aspx:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <h1><asp:label ID="signedIn" runat="server" /></h1>
    <asp:label ID="claimType" runat="server" />
    <asp:label ID="claimValue" runat="server" />
    <asp:label ID="claimValueType" runat="server" />
    <asp:label ID="claimSubjectName" runat="server" />
    <asp:label ID="claimIssuer" runat="server" />
</body>
</html>

我已经有一段时间没有这样做了,但我发现启用日志记录是了解正在发生的事情的良好开端。可以在此处找到有关启用日志记录的一些说明:

How To: Enable WIF Tracing

尝试将日志命名为“.svclog”扩展名,然后可以在SvcTraceViewer工具中双击查看,这样更容易挖掘问题信息。此处有更多详细信息:

Service Trace Viewer Tool

ClaimsPrincipal 公开了一组身份,每个身份都是一个 ClaimsIdentity。 ClaimsIdentity 实现 IIdentity,您可以从中使用 IsAuthenticated 属性 指示用户是否已通过身份验证。这是一个布尔 true/false 值。

解决方案:

杀死了整个 aspx 页面。通过工作室工具创建一个新的,然后将 aspx 和 cs 文件合并在一起。

仍然不确定哪里出了问题(继承链接不正确,等等)但代码正在编译..现在添加如上所述的日志记录功能,然后实际添加我自己的功能..